专用聊天应用程序的数据模型设计

时间:2012-06-18 19:33:18

标签: database-design data-modeling

我在为我的应用程序设计合适的数据模型时遇到了困难 在我的申请中,我有成对的参与者,他们将一起完成几项活动。每个配对在其存在的过程中将进行2-3次对话。每个对话可能有许多由配对中的任一参与者创作的消息 我拥有的最佳模型是:

         PAIRINGS
          /     \
         /       \
        V         V  
PARTICIPANTS     CONVERSATIONS
-pairing_id      -pairing_id
       \          /
        \        /
         V      V
         MESSAGES
         -participant_id
         -conversation_id

然而,该模型允许消息的作者在与对话相关联的配对之外并且看起来是错误的。我对如何构建数据模型有更好的建议吗?

1 个答案:

答案 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还要求您在UNIQUEPARTICIPANTS (pairing_id, participant_id)

上添加CONVERSATIONS (pairing_id, conversation_id)索引