Проект относится к сфере недвижимости.
Каждый объект недвижимости строго соответствует одному из типа: квартира, дом, гараж и т.д.
Каждый объект недвижимости обладает некими общими свойствами (адрес, площадь, цена и т.д.)
А есть свойства которые соответствуют только конкретному типу объекта (тип - дом: площадь участка, наличие бассейна и т.д.)
Сейчас у каждого типа объекта сформирована своя таблица в БД (MySQL).
Там перечислены как общие для всех объектов свойства так и уникальные.
В новой версии проекта планируется увеличение типов объектов.
Если работать по старой схеме то необходимо добавить много таблиц.
Много таблиц неудобно:
- в каждой таблице свой ID
- нельзя просто выбрать все объекты одного менеджера - необходимо делать последовательно выборки из нескольких таблиц
- если вносить какой-то общий параметр необходимо вносить во множество таблиц
- ...
Решением данных проблем видится создание одной общей таблицы объектов.
Сейчас встал вопрос о выборе схемы хранения данных:
Одна большая таблица
Тут в одной будут перечислены все возможные свойства объектов.
Причем поле площадь участка для объекта типа квартира не будет заполняться.
Вариант простой но избыточен.
Несколько таблиц
Таблица
объектов, в ней будут только общие свойства
Таблица
типов объектов: квартира, дом, участок...
Таблица всех
свойств: кол-во комнат, жилая площадь, наличие мебели....
Таблица
свойств типов будет показывать набор свойств соответствующий типу (один тип много свойств)
Таблица
свойств объектов это значение свойств определенного объекта (один объект много свойств)
Вроде как правильный вариант, но стоит ли так всё усложнять?
Как и стоит ли реализовать хранение данных в соответствии с типом данных: int, varchar, enum, text ....
Или все значения записывать в виде text? - налицо потеря функциональности БД?
Как тогда сортировать объекты по какому-то свойству?
Прошу поделитесь своим опытом в реализации подобных проектов.
Может существуют еще какие-нибудь пути решения.
На сегодняшний момент:
Количество объектов более 5 тыс
Типов объектов 25
Свойств более 80