Как организовать структуру базы данных для динамических характеристик?

Товарищи, подскажите, пожалуйста, лучший способ организации структуры базы данных MySQL для динамической системы характеристик и поиска по ним.

Конкретнее: Есть дома. У домов есть характеристики. Значения этих характеристик могут быть числом, строкой или boolean'ом. Нужно организовать базу так, что бы характеристики можно было добавлять. При этом значения для одной и той же характеристики у каждого дома свое. При этом нужно будет организовать фильтрацию по этим характеристикам.

Мой вариант:
9f26809c583f4aa3b5d650153c5f5094.png

При использовании MySQL, так как сейчас изображено у меня на картинке, всю фильтрацию придется проводить через CAST или CONVERT.

Вот я и думаю, как лучше организовать подобное.
  • Вопрос задан
  • 985 просмотров
Решения вопроса 1
Как добавить товар в корзину?

- EAV (ссылку дал @muhammad_97);
- JSON/XML в реляционной базе;
- JSON в документной базе (CouchDB/MongoDB) (предпочтительный вариант);
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
DVamp1r3
@DVamp1r3
Java/PHP программист
Возможно также поможет сериализация объектов в строку
Ответ написан
@heartdevil
плыву как воздушный шарик
В таблице characteristics сделайте конкретно три поля, вместо type

Id (int)
name (varchar)
string_option (varchar)
number_option (int/float/decimal)
bool_option (boolean)
prefix (varchar)
suffix(varchar)

И храните выборочно значения для каждого поля
Ответ написан
Ваш ответ на вопрос

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

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