Задать вопрос
@nicolaa

Как сделать структуры БД для автомобильных товаров?

Дано:

  • - Марка
  • - Модель (при выборе марки)
  • - Поколение (при выборе модели)
  • - Комплектация (при выборе поколения)
  • - Кузов (при выборе модели)
  • - Двигатель (при выборе кузова)


(У каждого пункта есть своя таблица, то есть есть таблица marka - в ней все марки автомобилей, есть таблица model - в ней все модели автомобилей и т.д.)

Для товара есть только одно обязательное значение - Модель, остальные по выбору

Для товара можно указать несколько автомобилей

В голове два варианта реализации:

1. Создаем пять столбиков (Модель, Поколение, Комплектация, Кузов, Двигатель) для каждого столбика тип JSON, в нем храним выбранные данные (id)

Пример получаемой таблицы

prods

id |           name          | model | pokolenie | komplektaciya | kuzov | dvigatel
     1 | Название товара |  {1,2}  |    {1,2,3}    |    {1,2,3,4,5}     |   {1}   | {1,2,3,4}


2. Делаем связи, создаем 5 связующих таблиц

Например создаем таблицу model и pokolenie

model

id | model_id | prod_id
     1 |       1       |    1
     2 |       2       |    1


pokolenie

id | pokolenie_id | prod_id
     1 |           1         |    1
     2 |           2         |    1
     3 |           3         |    1


И таблица с товаром

prods

id |      name
     1 | Название товара


Мне больше нравится первый вариант, из-за простоты, меньше запросов в БД и меньше объема записей, ориентировочное кол-во товаров >5 мл, у каждого товара может быть с десяток выбранных значений (модель, поколение, комплектация, кузов, двигатель)

Как правильно сделать структуры?
  • Вопрос задан
  • 465 просмотров
Подписаться 2 Простой Комментировать
Ответ пользователя Владимир Коротенко К ответам на вопрос (4)
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
4 таблицы

Manufacture производитель
Model/stage
Options кузов части и прочее
Parts Список всех частей из опций

Плюс несколько вспомогательных таблиц от оригинального производителя чисто для удобства. Бухгалтерию и вашу машинерия опустил
Ответ написан
Комментировать