スポーツチームがより簡単に試合を開催できるようにするウェブサイトをデザインしようとしています:
ユーザーがサインアップしてチームに参加します。メンバーは利用可能なチームを閲覧し、プライベート メッセージを送信して試合を編成できます。試合が終わった後、チームは互いのページにコメントを投稿し、スキルやスポーツマンシップなどについて言及することができます。私が想像したデータベースは次のようになります。
ユーザー
* UserID
* Username
* email
チーム
* TeamID
* TeamName
* OtherInfo
レビュー
* FromID
* ToID
* Date
* Comments
メッセージ
* FromID
* ToID
* Content
UserTeam (ジャンクション テーブル)
* pk (UserID, TeamID)
レビューとメッセージをモデル化する方法がよくわかりません。レビューには from フィールドと to フィールドがあるため、ジャンクション テーブルを使用して多対多の場合のように設計を正規化することはできません。
注: メッセージは、メンバーまたはチームのいずれかによって送信され、メンバーまたはチームによって受信されます。