Этот пост в блоге дает очень хорошее объяснение о взаимоотношениях.
(так много) Варианты «многие ко многим»: что использовать?
Итак ... какой из этих трех подходов является лучшим?Как всегда, это зависит от того, что вам нужно сделать, но вот несколько практических правил, которые вы можете использовать в качестве руководства:
Родной N: N
Вероятно, самый простойнастроить но самое ограничивающее.Используйте, когда вам нужно только знать, что две записи связаны друг с другом, но вам не нужна дополнительная информация о самом соединении.
Примеры:
Пользовательский объект Отрасль с N: Nк учетной записи Добавьте пользовательские отношения N: N между объектами «Конкурент» и «Территория», чтобы отслеживать, какие конкуренты активны и на каких территориях. Пользовательский объект Цвет с N: N для контакта (вы не отслеживаете любимые цвета ваших контактов ???)
Руководство N: N
Немного больше работы по настройке, но, как правило, стоит усилий.Используется, когда помимо того, что две записи связаны, вам также нужна информация о соединении, например, его статус, когда оно было создано и т. Д.
Примеры:
Ассоциации и события участникови регистрации (1: N от контакта до регистрации, 1: N от события до регистрации) Подписчики и подписки (1: N от контакта до настраиваемого объекта «Подписка», 1: N от настраиваемого объекта «Продукт подписки» до подписки)
Соединения и роли подключения
Как я уже упоминал выше, на самом деле это конкретная реализация ручного подхода.И если вы немного углубитесь в это, вы обнаружите, что сущность Соединения является добросовестно настраиваемой сущностью.Вы даже можете настроить его, добавив настраиваемые поля в форму подключения и так далее.Но ... будьте осторожны с перебором: существует только одна сущность Соединения, и настройки, сделанные для одной Роли Соединения, как правило, не будут применимы к другой.
Одним из их особых преимуществ является то, что одна роль подключения может соединять записи разных типов (например, контакты могут ссылаться на другие контакты, учетные записи и возможности)
Это вызов для оценки, но яЯ бы сказал, чтобы использовать их, когда вам нужно отслеживать некоторую информацию о реальных соединениях (например, когда они созданы и сколько их существует ...), но не так много.Примеры:
Рефералы (контакт с контактом, контакт с учетной записью, контакт с потенциальной компанией) Бывший сотрудник (контакт с учетной записью, ведущий к счету) Совет директоров (контакт с персоналом «Правление», ведущая доска)