kotcich
@kotcich
Я скучный.

Как задать связи разного вида с помощью Foreign key?

Ну то есть, стандартное назначение key для внешнего ключа и последующее описание внешнего ключа приводит к связи 1 к 1, но как дать понять, что связь 1 ко многим или многие ко многим?
  • Вопрос задан
  • 52 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В MySQL внешний ключ (Foreign Key) служит только для дополнительного автоматического контроля целостности базы. В подчинённой таблице поле не может принимать значение, не входящее в список значений связанного поля родительской таблицы или NULL.
Тип связи в MySQL не учитывается.
Ответ написан
@Akina
Сетевой и системный админ, SQL-программист.
Любой внешний ключ (FOREIGN KEY в структуре таблицы) задаёт связь типа 1:N (если локальное выражение внешнего ключа не может быть NULL) либо (0-1):N.

Задание связи 1:1 (и соответственно (0-1):1) требует дополнительного ограничения уникальности на локальной стороне.

Задание связи M:N требует дополнительной связующей таблицы.

В данном случае "задание связи" == "создание правила контроля целостности и непротиворечивости данных, контролируемое на стороне сервера соответствующей подсистемой".
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы