我在为我的应用程序设计合适的数据模型时遇到了困难 在我的申请中,我有成对的参与者,他们将一起完成几项活动。每个配对在其存在的过程中将进行2-3次对话。每个对话可能有许多由配对中的任一参与者创作的消息 我拥有的最佳模型是:
PAIRINGS
/ \
/ \
V V
PARTICIPANTS CONVERSATIONS
-pairing_id -pairing_id
\ /
\ /
V V
MESSAGES
-participant_id
-conversation_id
然而,该模型允许消息的作者在与对话相关联的配对之外并且看起来是错误的。我对如何构建数据模型有更好的建议吗?
答案 0 :(得分:2)
这是一个常见问题。在pairing_id
表格中添加MESSAGES
,并相应更改两个FOREIGN
键以包含此列:
PAIRINGS
/ \
/ \
V V
PARTICIPANTS CONVERSATIONS
-pairing_id -pairing_id
\ /
\ /
V V
MESSAGES
-participant_id
-conversation_id
-pairing_id
大多数DBMS还要求您在UNIQUE
和PARTICIPANTS (pairing_id, participant_id)
CONVERSATIONS (pairing_id, conversation_id)
索引