@LostThisUser

Можно ли сделать такое отношение таблиц?

Есть таблица Product:
-- id
--product_name

И таблица Material
--id
--material_name

Делают отношение многие ко многим через промежуточную таблицу ProductMaterial
--id
--product_id
--material_id
--amount

Вопрос, можно ли в промежуточную таблицу добавлять поле amount или это считается недопустимым?
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
Связь типа M:N между продуктом и материалом должна трактоваться как самостоятельная сущность. И, как любая другая сущность, она может иметь свои собственные атрибуты.

можно ли в промежуточную таблицу добавлять поле amount или это считается недопустимым?

Количество в данном случае - атрибут именно связи, а не продукта и не материала. Посему поле количества в связывающей таблице не только допустимо, но и единственно правильно. При условии, что на комбинацию полей (product_id, material_id) наложено требование уникальности. Иначе должна существовать ещё одна таблица, которая ссылается на связующую таблицу и содержит поле количества.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@StockholmSyndrome
существование дополнительных атрибутов в промежуточной таблице вполне допустимо, если они действительно являются атрибутами взаимосвязи этих двух сущностей
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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