Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте, есть база данных объявлений. Атрибуты объявлений храню в json, так как в зависимости от категории атрибуты у объявлений будут разные.
Отредактированно webJunior (25.08.2017 23:00:12)
Неактивен
Вы сами ответили себе на вопрос. +))
Похоже, что у вас огромная проблема с проектированием БД. Не бывает так, чтобы атрибутов было бесконечно много. Даже eBay и Amazon умудряются структурировать атрибуты товаров, выставляемых у них на площадках. А у вас объявления, у которых атрибутов много меньше, чем у товаров.
Неактивен
Александр Трофимов написал:
Вы сами ответили себе на вопрос. +))
Похоже, что у вас огромная проблема с проектированием БД. Не бывает так, чтобы атрибутов было бесконечно много. Даже eBay и Amazon умудряются структурировать атрибуты товаров, выставляемых у них на площадках. А у вас объявления, у которых атрибутов много меньше, чем у товаров.
Под каждый тип объявления создать отдельную таблицу? Что посоветуете?
Отредактированно webJunior (28.08.2017 13:28:45)
Неактивен
Вариант, создавать таблицы не под атрибут, а под тип атрибута. Или хранить атрибуты (число, дату, координаты и т.д.) в текстовом виде. Тогда можно обойтись одной таблицей.
Неактивен
klow написал:
Вариант, создавать таблицы не под атрибут, а под тип атрибута. Или хранить атрибуты (число, дату, координаты и т.д.) в текстовом виде. Тогда можно обойтись одной таблицей.
Про выделенное можно по подробнее? Второй вариант не подходит, так как нужен будет фильтр объявлений по этим атрибутам, в данный момент все в одной таблице, только атрибуты хранятся в json.
Неактивен
Еще как вариант, может дублировать объявление в nosql, например mongodb и делать поиск уже в ней?
Неактивен
Например,
1. таблица атрибутов
PropertyID, Name, TypeDB
2. Таблица значений атрибутов для целого
ObjId, PropertyID, Value (Int)
3. Таблица значений атрибутов для даты
ObjId, PropertyID, Value (Date)
...
В зависимости от TypeDB используем ту или иную таблицу для сохранения значений.
Отредактированно klow (28.08.2017 16:19:13)
Неактивен
klow написал:
Например,
1. таблица атрибутов
PropertyID, Name, TypeDB
2. Таблица значений атрибутов для целого
ObjId, PropertyID, Value (Int)
3. Таблица значений атрибутов для даты
ObjId, PropertyID, Value (Date)
...
В зависимости от TypeDB используем ту ли иную таблицу для сохранения значений.
Я так понимаю это EAV? В начале я делал как раз такую структуру, но к сожалению при поиске по атрибутам получается слишком большое количество join - ов
Отредактированно webJunior (28.08.2017 15:24:24)
Неактивен