従業員とプロジェクトを含むシステムをモデル化するとします。各従業員は 0 から n 個のプロジェクトに参加でき、プロジェクトには 0 から n 人の従業員が従事できます。これをモデル化するために、次の関係を持つ 3 つのテーブル を作成employee
しましたproject
。work
| | employee
| | (0..n) <----> (1..1) | work
| | (1..1) <----> (0..n) | project
| |
これまでのところ、テーブルwork
には 2 つの属性 (従業員エントリの ID とプロジェクトの ID) しかなく、これは正常に機能します。
各プロジェクトには、公開の「チャット」と非公開の「チャット」も必要です。パブリックは、社内の全員がそのプロジェクトのチャットを表示してメッセージを送信できるようにします。一方、非公開の場合、その特定のプロジェクトに参加している従業員のみがメッセージを表示および送信できます。
公開チャットは、誰もがメッセージを見ることができるため、モデル化が容易になります。私の疑問は私的なものについてです。プライベート メッセージがその特定のプロジェクトの一部である従業員に関連付けられるように、プライベート メッセージの条件をデータベースに強制したいと考えています。id
これを行う方法は、テーブルに を追加し、work
この ID をprivate_message
テーブルの外部キーとして使用することです。したがって、これら 2 つのテーブルの関係は次のようになります。
| | private_message
| | (1..1) <----> (0..n) | work
| |
これは、この状況をモデル化する良い方法ですか? そうでない場合、どうすればこのモデルを改善できますか?
ありがとう。