Какой способ посоветуете в реализации свойств полей для продукта?
Здравствуйте!
Сейчас размышляю над решением по реализации свойств (товара/объявления).
Суть следующая:
- Есть категории (разделы) различные с вложением и без
- Есть товары/объявления которые относятся к разделу
- У каждого товара есть свойства отличающиеся для каждого раздела
Базу данных планирую использовать Postgres
Вариант 1
Создать таблицу категории
Создать для каждой категории товара/объявлений отдельную таблицу (модель) со свойствами в которой будут храниться данные
Вариант 2
Создать таблицу свойств, где будут все свойства, id категории и их тип (текст, число, список и т.д)
Создать таблицу товары/объявления содержащая общее параметры, такие как название и id категории
Создать таблицу категории
Создать таблицу данные которая будет хранить id товара, id свойства и значение которое было присвоено
Вариант 3
Создать таблицу категории
Создать таблицу моделей товара которая будет хранить namespace модели товара
Создать таблицу списка полей которая будет хранить список полей для id модели товара и их тип (что то вроде админки voyager для ларавел)
Создать для каждой категории таблицу товаров/объявлений со значениями свойств (или может создать отдельную таблицу хранящую значения)
Размышляя над этими вопросами оглядываюсь на такие сервисы как:
авито, юла, юрмалт и т.д.
Надеюсь мысль над которой размышляю донес )
Какой вариант посоветуете или может быть предложите свой проверенный способ?
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