我在尋找一些關於如何爲電子郵件式應用程序設計數據庫的建議,特別是如何處理向多個用戶發送消息,以及顯示發送給用戶的消息。電子郵件式應用程序的數據庫設計
這是我到目前爲止有:
消息(主鍵是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?)。這可能導致擴展問題,或者它不是真的擔心什麼?
有什麼想法/建議嗎?謝謝。