Как спроектировать БД для доски объявлений?

Добрый день.
Поставлена задача спроектировать БД для доски объявлений на Laravel.

Основной вопрос возникает в том, как лучше хранить свойства категорий товаров.
У нас есть таблица с категориями, у каждой из этих категорий есть свой набор свойств.
Свойства имеют разный тип. Это может быть число, строка, вариант из списка и.т.д
Если у нас тип свойства - раскрывающийся список, нам надо как то хранить значения для этого свойства. Причем у разных категорий эти свойства будут разумеется разные.
Например, есть овощи, это главная категория.
У нее есть подкатегории, картофель, огурцы и т д и есть свойство сорт, у каждой из этих подразделов они разные.

Хранить это все разумеется можно различными способами, интересно, как делать это правильно, чтобы было максимально масштабируемо и удобно?
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
@dimoff66
Кратко о себе: Я есть
products
- id
- name
- category_id
categories:
- id
- name
- parent_id (для внутренней иерархии)
properties:
- id
- name
- category_id (может быть указана ссылка на группу товаров)
- value_type (ENUM: "string", "int", "boolean", "date", "list")
list_values: (Заполняется для свойств с типом list)
- id
- property_id
- name
prop_values:
- product_id
- property_id
- value (все пишем в строку, потом при получении преобразуем в нужный тип)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы