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

Рейтинг: 0Ответов: 1Опубликовано: 06.06.2023

Можно ли связать таблицы связью "один ко многим", не используя внешний ключ? Предположим, у меня есть таблица products с первичным ключом id. И вторая таблица с информацией о количестве произведенной продукции в год productions и составным первичным ключом (product_id & year).

Ниже наглядный пример того, что я имею ввиду:

products  |   productions 
------------------------
0         |    0  2020
1         |    0  2021
          |    1  2020

Если связать id таблицы products с product_id таблицы productions это будет связь один к одному или один ко многим? Я знаю, что связь между двумя первичными ключами это один к одному. Но в данном примере к продукту с id = 0 относится 2 записи из таблицы productions, а это уже один ко многим...

Ответы

▲ 1Принят

Я знаю, что связь между двумя первичными ключами это один к одному.

У вас со стороны productions используется не первичный ключ, а его часть, так что данное правило тут не применимо.

Если связать id таблицы products с product_id таблицы productions это будет связь один к одному или один ко многим?

product_id обычное не уникальное поле, так что будет классическая связь один-ко-многим.