Предположим, что мы имеем следующую частичную диаграмму ER:Можно ли использовать «семантически обратные» ассоциации, например Message blongsTo Attachment, в CakePHP?
Обратите внимание, что таблица attachments
впоследствии будет использоваться для сообщений, Доводы, задания и лекции вложения.
Проблема с 3-один-к-одному отношений между attachments
и messages
, submissions
и assignments
. Согласно соглашениям CakePHP, Message belongsTo Attachment
(и Attachment hasOne Message
), потому что Message
содержит внешний ключ (то же самое относится и к другим 2 отношениям). Конечно, имеет смысл сказать, что Message hasOne Attachment
(и что Attachment belongsTo Message
). Если бы у нас были только messages
и attachments
, было бы легко «правильно ориентировать», переместив внешний ключ на attachments
.
Но проблема в том, что снова messages
, submissions
, assignments
и lectures
имеют отношения с одной и той же attachments
таблицей. Один из способов получить «семантически правильные отношения» состоит в том, чтобы иметь 4 разных модели Attachment
: MessageAttachment
, SubmissionAttachment
, AssignmentAttachment
и LectureAttachment
.
Предположим, что мы заинтересованы только в получении прикрепление определенного сообщения, представления, или назначение, это ОК, чтобы использовать эти семантически обращенные ассоциации, или мы должны правильно ориентировать им путем отделения Attachment
в 4-х различных как упомянуто выше?