次の部分 ER 図があるとします。
attachments
このテーブルは、メッセージ、提出物、課題、講義の添付ファイルに後で使用されることに注意してください。
attachments
問題は、とmessages
、 、の間の 3 つの 1 対 1 の関係submissions
にありassignments
ます。CakePHP の規約によると、Message belongsTo Attachment
(and Attachment hasOne Message
)Message
には外部キーが含まれているためです (同じことが他の 2 つの関係にも当てはまります)。もちろん、それを言う方が理にかなっていますMessage hasOne Attachment
(そしてそれAttachment belongsTo Message
)。messages
andしかない場合は、外部キーを に移動することで、関係を「適切に方向付けるattachments
」のは簡単です。attachments
しかし、ここでも問題は、messages
、submissions
、assignments
、およびが同じテーブルlectures
と関係を持っていることです。「意味的に正しい」関係attachments
を得る 1 つの方法は、 、、、およびの 4 つの異なるモデルを持つことです。Attachment
MessageAttachment
SubmissionAttachment
AssignmentAttachment
LectureAttachment
特定のメッセージ、送信、または割り当ての添付ファイルを取得することにのみ関心があると仮定すると、これらの意味的に逆の関連付けを使用しても問題ないでしょうか、それとも上記のように 4 つの異なるモデルに分けて適切に方向付ける必要がありますか?Attachment