2 один ко многим вместо 1 много ко многим - PullRequest
9 голосов
/ 21 мая 2010

В учебном пособии по Hibernate в главе 25 передовой опыт говорится, что мы должны использовать 2 отношения «один ко многим» вместо одного «многие ко многим» с промежуточным классом ссылок. Я не понимаю, в чем его выгода: почему лучше создать трехмерную сущность, в то время как многие-ко-многим могут генерировать таблицу соединений, которая действует как это промежуточное звено. Однако эта рекомендация должна быть там по уважительной причине.

Может кто-нибудь объяснить обоснование этой рекомендации? Спасибо.

1 Ответ

8 голосов
/ 21 мая 2010

Отношения ко многим многим довольно часто развиваются ракушками & mdash; дополнительные данные, связанные с самими отношениями, а не с любым из участников отношений (по моему опыту, это скорее норма, чем исключение). Например, члены и группы могут быть связаны многими-многими, и вы хотите знать, когда участник присоединился к группе, каков его статус членства (новый, ожидающий, приостановленный, ...) и т. Д.

Если вы начнете с моделирования отношения напрямую как «многие ко многим» и напишете весь свой код соответствующим образом, самый первый дополнительный столбец, который попадет в таблицу соединения, сломает вашу модель и кучу кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...