我在寻找一些关于如何为电子邮件式应用程序设计数据库的建议,特别是如何处理向多个用户发送消息,以及显示发送给用户的消息。电子邮件式应用程序的数据库设计
这是我到目前为止有:
消息(主键是ID)
- ID(身份)
- SenderId(外键Users.Id)
- <消息数据>
ReceivedMessages(主键的MessageId + RecipientId)
- 的MessageId(外键Messages.Id)
- RecipientId(外键Users.Id)
- IsRead
所以对于发送的每条消息,消息中都会有一行,包含数据,然后是ReceivedMessages中每个收件人的一行。
但是,如果我想查看用户发送的所有消息以及他们发送给谁的信息呢?对于每条消息,我需要找到该消息的所有ReceivedMessages行,并将所有这些消息与用户表连接起来,然后以某种方式将所有名称连接起来(例如:Concatenate many rows into a single text string?)。这可能导致扩展问题,或者它不是真的担心什么?
有什么想法/建议吗?谢谢。