Как правильно спроектировать архитектуру сайта агентства недвижимости?
Задача - сделать сайт агентства недвижимости.
Первое что формируется - тип объектов (категории). Для типов общими характеристиками являются цена, город, район.
Но для каждой из категорий также есть ряд определенных характеристик именно для этой категории.
Необходима также фильтрация внутри категории.
Как я понимаю необходимо использовать eav. Или можно обойтись пойти другим способом?
Кто как делал, поделитесь, пожалуйста, идеями.
ww-realty.ru форма поиска слева (Расширеный поиск).
Можно и EAV делать. Объектов обычно не много поэтому проблем по производительности на уровне субд не возникает. Но можно и просто делать одну таблицу где каждая характеристика это отдельный столбец (на приведенном сайте именно так). Это вариант проще в реализации и супорте чем EAV.
не совсем понятно - в вопросе идет речь именно о характеристиках категорий или о характеристиках объектов в рамках категорий?
Но вообще тут нужно понимать насколько критичным для Вас является хранение этой информации в реляционной БД (какие ее преимущества Вам нужны?). Если использование реляционной БД не критично лучше перейти на документо-ориентированную базу данных. Если критично тогда у Вас есть следующие варианты:
1. Использовать EAV
2. Использовать одну таблицу для хранения всех объектов, отводя под каждое свойство отдельный столбец
3. Использовать для объектов каждой категорию свою таблицу с перечнем свойств (но в таком случае придется динамически создавать/редактировать таблицы)
Как по мне более правильным будет использование все-таки EAV
Извиняюсь, может не корректно объяснил - характеристики привязываются к категориям, а товары категории наследуют эти характеристики.
И да, именно в реляционной БД придется делать по историческим причинам.