Я занимаюсь разработкой сайта объявлений, аналогичного Quickr.com.
Основная проблема заключается в том, что для каждой категории требуется свой набор свойств.Например, для мобильного телефона атрибутами могут быть Производитель, Операционная система, Сенсорный экран, Включен ли 3G и т. Д. В то время как для квартиры указываются атрибуты Количество спален, Меблированный, Какой этаж, общая площадь и т. Д.Атрибуты и количество атрибутов варьируется для каждой категории, я храню атрибуты и их значения в отдельных таблицах.
Моя текущая структура базы данных
Таблицаадабли_данных
Эта таблицахранит всю рекламу.Одна запись на объявление.
ad_id
ad_title
ad_desc
ad_created_on
cat_id
Пример данных
-----------------------------------------------------------------------------------------------
|ad_id | ad_title | ad_desc | ad_created_on | cat_id |
-----------------------------------------------------------------------------------------------
|1 | Nokia Phone | Nokia n97 phone for sale. Excellent condition | <timestamp> | 2 |
-----------------------------------------------------------------------------------------------
Таблица adss_cat
В этой таблице хранятся все доступные категории.cat_id в таблице adss_ads относится к cat_id в этой таблице.
cat_id
категория
parent_cid
Пример данных
-------------------------------------------
|cat_id| category | parent_cid |
-------------------------------------------
|1 | Electronics | NULL |
|2 | Mobile Phone | 1 |
|3 | Apartments | NULL |
|4 | Apartments - Sale | 3 |
-------------------------------------------
Таблица tables_attribute
Эта таблица содержит все доступные атрибуты для определенной категории.Относится к таблице adss_cat.
attr_id
cat_id
input_type
attr_label
attr_name
Пример данных
-----------------------------------------------------------
|attr_id | cat_id | attr_label | attr_name |
-----------------------------------------------------------
|1 | 2 | Operating System | Operating_System |
|2 | 2 | Is Touch Screen | Touch_Screen |
|3 | 2 | Manufacturer | Manufacturer |
|4 | 3 | Bedrooms | Bedrooms |
|5 | 3 | Total Area | Area |
|6 | 3 | Posted By | Posted_By |
-----------------------------------------------------------
Таблица adss_attr_value
В этой таблице хранится значение атрибута для каждого объявления в таблице adss_ads.
attr_val_id attr_id ad_id attr_val
Пример данных
---------------------------------------------
|attr_val_id | attr_id | ad_id | attr_val |
---------------------------------------------
|1 | 1 | 1 | Symbian OS |
|2 | 2 | 1 | 1 |
|3 | 3 | 1 | Nokia |
---------------------------------------------
========
- Можно ли использовать этот дизайн?
- Можно ли индексироватьэти данные с помощью solr?
- Как выполнить фасетный поиск по этим данным?
- Поддерживает ли MySQL свертывание полей как solr?