1

アプリケーションに適したデータモデルを設計するのに苦労しています。
私のアプリケーションでは、いくつかのアクティビティを一緒に完了する参加者のペアがいます。各ペアリングは、その存在の過程で2〜3の会話があります。各会話には、ペアリングの参加者のいずれかによって作成された多くのメッセージが含まれる場合があります。
私が持っている最高のモデルはこれです:

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

ただし、このモデルでは、メッセージの作成者が会話に関連付けられているペアリングの外にいることができ、それは間違っているように見えます。データモデルをどのように構成できるかについて、より良い提案がありますか?

4

1 に答える 1

2

これは一般的な問題です。テーブルにを追加しpairing_id、この列を含めるために2つのキーをMESSAGES適切に変更します。FOREIGN

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

UNIQUEほとんどのDBMSでは、インデックスを追加する必要がありますPARTICIPANTS (pairing_id, participant_id)CONVERSATIONS (pairing_id, conversation_id)

于 2012-06-18T20:26:50.313 に答える