我正在构建私聊和群聊的聊天应用程序。我想出了一个设计:
设计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
完成的。
两者中哪一个是高效且可扩展的?