如何解决消息应用程序数据库设计
该应用应允许私人(直接 1 对 1 消息传递)和公共(群组)聊天室。
这就是我的想法
Table User
---------
UserID
Name
.
Table ChatRoom
--------------
ChattRoomID
Type //Either public or Private
.
Table Members
----------
MemberID //This is a foreign key from 'User'
ChatRoom //This is a foriegn key to 'ChatRoomId'
.
Table Messages
---------
ID
Sender //foreign key to MemberID or UserID
ChatRoom //foreign key from 'Chatroom'
content
即使是私人对话,它也会创建一个聊天室,但该 Member
中只有 2 个 Chatroom
。在群聊的情况下,Chatroom
将有多个 Members
这是一个糟糕的设计吗?任何想法都将不胜感激。
解决方法
我认为为私人消息创建一个聊天室不是一个好主意,因为 - 在你写的时候 - 在这种情况下,你会偶尔有很多只有两个成员的聊天室。存储此聊天室,包括。会员将没有任何好处。您必须将这两种类型(私人对话和聊天室消息)分开。
因此,您可以为这样的私人对话创建新表,而不是这样:
Table Conversations
-----------------
Id
User1
User2
Started
和
Table ConvMessages
-----------------
Id
ConversationId
Sender
Content
Date
其他表(ChatRoom
、Members
、Messages
)仅用于真正的聊天室对话。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。