高效且可扩展的聊天应用程序数据库设计

时间:2018-04-14 02:29:04

标签: mysql database database-design relational-database

我正在构建私聊和群聊的聊天应用程序。我想出了一个设计:

设计1:

User:
id

Message:
id
sender_id (F - > user)
receiver_type [0 - group, 1 - user]
receiver_user [can be null] (F -> user)
receiver_group [can be null] (F -> group)
message
timestamp

Group:
id

Group_Users:
group_id (F -> group)
user_id (F -> user)

但后来我想出了另一种设计。

设计2

User:
id

Group:
id
is_private (1 - user, 0 - group )

Group_Users:
group_id (F -> group)
user_id (F -> user)

Message:
sender_id (F -> user)
receiver_id (F -> group)
message
timestamp

说明:对于私人聊天,我会将两个用户分组。检查是通过小组的is_private完成的。

两者中哪一个是高效且可扩展的?

0 个答案:

没有答案