Многие ко многим и составной первичный ключ и внешний ключ

Я создаю систему, в которой есть свойства и перспективы, у меня есть таблица для обоих, но, поскольку я вижу это как отношение «многие ко многим», я создал таблицу с именем проспект_проперти с двумя столбцами проспект_ид и свойство_ид, они оба / составные первичный(е) ключ(и).

У меня проблемы с установкой внешних ключей и их связыванием. Я полагаю, что составной ключ должен быть внешним ключом в двух других таблицах (или наоборот), но при попытке создать эту связь в Management Studio мне приходится ссылаться на одно поле, но у меня есть одно против . два...

Как я должен установить связь между этими таблицами, чтобы я для потенциального клиента мог видеть все свойства, а для свойства мог видеть все потенциальные клиенты?

SQL СЕРВЕР 2012 (Экспресс)


person Jesper    schedule 20.11.2012    source источник
comment
почему бы вам не добавить еще один столбец в качестве первичного ключа для вашей таблицы, а затем установить составной индекс для этих двух полей?   -  person Maryam Arshi    schedule 20.11.2012


Ответы (1)


1 Property --> несколькоProspect_property (ссылка на PropertyId с обеих сторон)
1 Prospect --> несколько Prospect_property (ссылка на ProspectId с обеих сторон)

Свойство: PropertyId – PK
Потенциальный клиент: ProspectId – PK
перспектива_свойство: составной PK, состоящий из PropertyId и ProspectId
PropertyId – FK для Properties, а ProspectId – FK для потенциальных клиентов

Больше ничего нет. Остальное будет сделано путем создания нескольких представлений, связывающих все это вместе.

person Patrick Honorez    schedule 20.11.2012
comment
Какие поля в каких таблицах должны быть установлены в качестве первичных/внешних ключей? - person Jesper; 20.11.2012
comment
Спасибо за помощь. Но при попытке настроить это, у меня есть проблема. Я установил PROSPECT.PROSPECTID и PROPERTY.PROPERTYID в качестве первичных ключей и PROSPECT_PROPERTY.PROSPECTID/PROSPECT_PROPERTY.PROPERTYID в качестве составного первичного ключа. Теперь, когда я пытаюсь установить отношение, я открываю PROPERTY -> Щелкните правой кнопкой мыши PROPERTYID -> Отношения, затем в окне выберите Таблица первичного ключа = PROSPECT_PROPERTY и таблица внешнего ключа = PROPERTY и столбцы PROPERTYID для обоих из них, но я получаю ошибка Столбцы в таблице PROSPECT_PROPERTY не соответствуют существующему первичному ключу или ограничению UNIQUE. - person Jesper; 21.11.2012
comment
ОК, я обнаружил, что должен установить отношение внешнего ключа в столбцах таблицы PROSPECT_PROPERTY в Management Studio и просто установить для второго столбца первичного ключа значение none. Так что теперь все хорошо. СПАСИБО - person Jesper; 21.11.2012