Supposons que nous avons le diagramme ER partiel suivant:Est-il correct d'utiliser des associations "sémantiquement inversées", comme Message blongsTo Attachment, dans CakePHP?
Notez que la table attachments
sera ensuite utilisé pour les messages', soumissions, missions et des conférences de attachements.
Le problème est avec les 3 one-to-one relations entre attachments
et messages
, submissions
et assignments
. Selon les conventions de CakePHP, Message belongsTo Attachment
(et Attachment hasOne Message
) car Message
contient la clé étrangère (la même chose s'applique aux 2 autres relations). Bien sûr, il est plus logique de dire que Message hasOne Attachment
(et que Attachment belongsTo Message
). Si nous avions seulement messages
et attachments
, il serait facile de "orienter correctement" la relation en déplaçant la clé étrangère à attachments
.
Mais le problème est à nouveau que messages
, submissions
, assignments
et lectures
ont des relations avec la même table attachments
. Une façon d'obtenir les relations "sémantiquement correct" est d'avoir 4 modèles différents: MessageAttachment
, SubmissionAttachment
, AssignmentAttachment
et LectureAttachment
.
En supposant que nous ne sommes intéressés à récupérer la pièce jointe d'un certain message, la soumission, ou la cession, est-il correct d'utiliser ces sémantiquement renversées associations, ou devrions-nous orienter correctement les en séparant Attachment
en 4 différents modèles comme mentionné ci-dessus?