Я пытаюсь смоделировать художников и песни, и у меня есть проблема, когда у меня есть Song_Performance может быть исполнено многими художниками (например, дуэтом), поэтому у меня есть Artist_Group, чтобы представлять, с кем песни исполняются.Как вы разрешаете объект коллекции многих ко многим в СУБД?
Ну, теперь у меня есть отношения «много-ко-многим» между Artist и Artist_Group, где Artist_Group уникально идентифицируется коллекцией художников в этой группе. Я могу создать объект пересечения, представляющий участие исполнителя в Artist_Group (Artist_Group_Participation?)
У меня возникли проблемы с тем, как создать первичный ключ для объекта Artist_Group, который сохраняет тот факт, что тот же набор художников представляет одну и ту же группу, и отсутствие первичного ключа для объекта Artist_Group означает, что мне не хватает внешнего ключа для объекта Artist_Group_Participation.
В книге «Моделирование моделирования данных» Джона Карлиса и Джозефа Магуара упоминается эта форма и упоминается в ней как «много-многообразна сущность» и говорится, что она очень редка, но не указывает, как ее разрешить так как очевидно, что отношения «многие ко многим» не могут храниться непосредственно в СУБД. Как мне это представить?
Edit:
Похоже, все это указывает таблицу пересечения, но это не моя проблема. У меня есть это. Моя проблема связана с тем, что вы не можете добавить запись Artist_Group, где группа исполнителей, которые она содержит, совпадает с существующей группой, игнорируя порядок. Я думал о том, что идентификатор для Artist_Group - это varchar, который является конкатенацией различных исполнителей, которые его составляют, что позволило бы решить проблему, если бы имел значение заказ, но наличие Artist_Group для «Elton John and Billy Joel» не мешает добавлению группы для «Билли Джоэла и Элтона Джона».
В качестве предположения вы можете захотеть изменить заголовок, чтобы он четко указывал на то, что ваша проблема заключается в том, чтобы * обеспечить уникальность комбинаций * ассоциаций в отношениях «многие-ко-многим», а не сопоставлять многие -Много отношения как такового. Это может помочь читателям «внимательно прочитать вопрос». – itowlson