Как вытащить или отобразить одно имя вторичного менеджера вместо двух вторичных менеджеров - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть несколько вторичных менеджеров для каждого соглашения. Мне просто нужен один. Но первичный ключ уникален, как я могу это сделать?

Вот так выглядят мои данные: This is how my data looks

1 Ответ

0 голосов
/ 05 сентября 2018

Вам необходимо понять первую нормальную форму (1NF) . Вы смотрите на своих основных и второстепенных владельцев и думаете, что можете сделать то же самое с вашими менеджерами, и застреваете, когда понимаете, что число вторичных менеджеров варьируется.

У вас есть отношения «многие ко многим» между соглашениями и менеджерами: соглашение имеет несколько менеджеров, а менеджер имеет несколько соглашений. Чтобы решить эту проблему, нужно создать три таблицы: одну для соглашений, одну для менеджеров, одну для одного менеджера и одно соглашение. Как это:

Agreements
ID
Other stuff

Managers
ID
Other stuff

AgreementsManagers
AgreementID
ManagerID

Все поля с «ID» являются полями первичного ключа. Таким образом, «ассоциативная сущность» (в этом случае СоглашенияManager) имеет два ключевых поля и, следовательно, имеет «составной первичный ключ».

Вы также должны сделать что-то подобное с владельцами. Положите владельцев в отдельную таблицу. Если в соглашении всегда два и только два владельца, вы можете сойти с рук и указать их идентификаторы в полях основного и дополнительного владельца в таблице соглашений. Если в соглашении имеется переменное число владельцев, вы должны полностью удалить поля владельцев из таблицы соглашений и настроить ассоциативную сущность, такую ​​как я дал вам в примере.

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