Дизайн таблицы базы данных: сгруппируйте в одной таблице или создайте дочерние таблицы и объедините - PullRequest
0 голосов
/ 27 сентября 2018

Я борюсь с тем, что является лучшим дизайном.
Есть 3 таблицы.
pr и pr_item и item
pr => id, name
item => id, name
pr_item => prId, itemId, itemPrice

pr означает запрос на покупку.
Я собираюсь внести изменения, когда пользователи могут выбрать несколько поставщиков для PR.
Поставщик не обязателенхотя.
Если для PR выбраны поставщики, в веб-интерфейсе будет отображаться группа товаров по поставщикам.(Каждый поставщик будет иметь свою собственную цену товара)

Поставщик 1
Item1 50
Item2 100

Поставщик 2
Item1 30
Item3 40
Item4 80

Если не выбран поставщик,
Item1 50
Item2 100
Item3 20
Item4 50

У меня есть 2 подхода
Подход 1:
Добавьте еще один обнуляемый столбец с именем supplierId в pr_item и сгруппируйте по SupplierId при получении записей из pr_item.

Подход 2:
Добавление еще 2 дочерних таблиц
pr_supplier -> prId, supplierId
pr_supplier_item -> prSupplierId, itemId, itemPrice
Таким образом, это будут запросы на объединение вместо группировки по,

Какой из них лучше?

Я использую MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...