Почему нет минусов и альтернатив? Вот тут минусы. Альтернатива вводить промежуточную таблицу.
Таблица каталога товаров и таблица заказов. Промежуточная таблица Заказ-товар.
Сергей Горностаев, просто связать 2 таблицы внешним ключом не означает сделать связь М-М между таблицами? А "развязать" эту связь - значит ввести промежуточную таблицу. Вот и получится что мы убрали М-М
NickFortune, если связать две таблицы внешним ключом, то получится один к одному или один ко многим. Можете привести пример схемы для создания отношения многие ко многим без промежуточной таблицы и запросов к ней?
Сергей Горностаев, https://dbfiddle.uk/k5xJoH9i наполнение orders такое же как и у таблицы-связки. То есть нам не нужна таблица-связка для м-м, потому что м-м можно создать из двух таблиц. Просто добавив поле item_id в orders. Но чтобы привести в 3 нф необходимо расщепить связь "многие ко многим" на две связи "один ко многим", т.е. создать таблицу-связку. В чем я заблуждаюсь?
NickFortune, попробуйте без промежуточной таблицы создать два заказа каждый из которых включает в себя все три элемента, и торт, и пирожное, и пирожок.
jester-wizard, обычно, в таблице заказов хранят ещё много полей, типа времени создания заказа, итоговой суммы, адреса доставки и т.п. Что будем делать с этим, дублировать эту информацию в каждой строке? Когда надо будет менять например статус заказа, как выбрать в каких конкретно строках его поменять? Когда строк станет много, что будем делать с отстуствием уникального индекса на OrderNumber?