Какую структуру данных сделать для доски объявлений?

Всем привет! Пытаюсь продумать структуру БД для доски объявлений, но проблема состоит в разных полях, которые индивидуальны для каждого раздела.
Как правило в каждом разделе доски объявлений есть свои поля для заполнения, например:
для раздела авто нужны примерно такие поля (марка, двигатель, пробег, цвет и т.д.).
для одежды нужны: размер, фасон, фирма и т.д.
Тоесть совершенно разные поля. Как это реализуется при добавлении и отображении объявлений?

У меня вариант такой...
Для разделов делаем таблицу в БД 'category'
Для общих данных типа: "дата публикации, название объявления, категории объявления и т.д." будет таблица 'ad'
Названия полей для заполнения будут храниться в таблице 'params'
Четвертая таблица будет связывать 'category' и 'params'. Точнее в ней будут указываться id полей из 'params' которые нужно отображать для каждой 'category'.
А пятая таблица `params_values` будет хранить заполненные данные по полям из 'params' где будет `id_category`, `id_params`, `value`.
При выводе объявления нужно будет выбрать объявления из 'ad' далее выбрать все записи из таблицы `params_values` где `id_category` равно id категории из таблицы 'ad' ну и дальше уже как обычно - вывод полученных данных.
Правильное ли это решение?

Извиняюсь за такое описание вопроса! Старался описать понятнее, но вот так получилось....
  • Вопрос задан
  • 591 просмотр
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Это классическое решение. Обычно кроме названия параметру задают какой-либо тип (число, сторока, один-из-списка, несколько-из-списка), граничные значения или список допустимых значений. В связке категория-параметр ещё указывают признак обязательности параметра. А вот param_values обычно сразу привязывают не к категории, а к конкретному объекту, в вашем случае - ad_id вместо category_id.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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