Какой способ посоветуете в реализации свойств полей для продукта?

Здравствуйте!

Сейчас размышляю над решением по реализации свойств (товара/объявления).
Суть следующая:
- Есть категории (разделы) различные с вложением и без
- Есть товары/объявления которые относятся к разделу
- У каждого товара есть свойства отличающиеся для каждого раздела

Базу данных планирую использовать Postgres

Вариант 1
Создать таблицу категории
Создать для каждой категории товара/объявлений отдельную таблицу (модель) со свойствами в которой будут храниться данные

Вариант 2
Создать таблицу свойств, где будут все свойства, id категории и их тип (текст, число, список и т.д)
Создать таблицу товары/объявления содержащая общее параметры, такие как название и id категории
Создать таблицу категории
Создать таблицу данные которая будет хранить id товара, id свойства и значение которое было присвоено

Вариант 3
Создать таблицу категории
Создать таблицу моделей товара которая будет хранить namespace модели товара
Создать таблицу списка полей которая будет хранить список полей для id модели товара и их тип (что то вроде админки voyager для ларавел)
Создать для каждой категории таблицу товаров/объявлений со значениями свойств (или может создать отдельную таблицу хранящую значения)

Размышляя над этими вопросами оглядываюсь на такие сервисы как:
авито, юла, юрмалт и т.д.

Надеюсь мысль над которой размышляю донес )
Какой вариант посоветуете или может быть предложите свой проверенный способ?
  • Вопрос задан
  • 441 просмотр
Пригласить эксперта
Ответы на вопрос 2
@deliro
Агрессивное программирование
Если постгрес, то детально изучи эту статью
Ответ написан
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
category:                id | l_key | r_key | level | name
product:                 id | name
product_category:       product_id | cat_id
option:                  id | category_id | name
product_option:          option_id | product_id | value


Но могут быть нюансы. Слишком мало о проекте Вы рассказали.

Базу данных планирую использовать Postgres

сразу не обратил внимание, тогда лучше как советует Алексей Долгов - json
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы