MySQL Primary Key Design - PullRequest
       3

MySQL Primary Key Design

0 голосов
/ 09 апреля 2019

Я планирую создать таблицу «Организации», столбцы которой:

Идентификатор организации (первичный ключ), Имя, План и Идентификатор компании (внешний ключ).

Моя проблема в том, что в каждой организации может быть несколько компаний, то есть мне нужно иметь несколько записей с одним и тем же идентификатором организации, но с другим идентификатором компании, но, поскольку идентификатор организации является моим основным ключом, я знаю, что могу не делайте этого (потому что это уникально).

Как я могу структурировать / спроектировать это? По сути, это отношения один ко многим между организацией и компанией. Я только начинаю с MySQL, поэтому я могу упустить что-то очевидное.

1 Ответ

1 голос
/ 09 апреля 2019

Удалите companyId из таблицы организаций и укажите идентификатор организации в качестве внешнего ключа в таблице компаний.

CREATE TABLE Organizations (
    OrganizationId INTEGER,
    ... other fields,
    PRIMARY KEY (OrganizationId)
)

CREATE TABLE Companies (
    CompanyId INTEGER,
    OrganisationId INTEGER,
    ... other fields,
    PRIMARY KEY (CompanyId),
    FOREIGN KEY (OrganisationId) REFERENCES Organizations(OrganisationId)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...