|
Модераторы: LSD |
|
Zloxa |
|
|||
Чо? Профиль Группа: Завсегдатай Сообщений: 3470 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Ога, а потом умри на отборе. Ибо, как всегда внезапно окажется, что к предикатам отбора надо будет применять не только OR, но еще и AND, а предикаты, как назло окажутся один неселективнее другого. Но, через это таки надо пройти http://lmgtfy.com/?q=EAV&l=1 Я полагаю, что РБД не лучшая платформа для подобных решений. Вполне возможно что я заблуждаюсь ввиду полного отсутствия познаний в нереляционных БД и слишком хорошо о них думаю. Мои размышления базируются на том, что организации подобного рода данных не нужна реляция, не нужен ACID и не нужны не малые издержки на всю эту хреноту. Возможно какое то гибридное решение - РБД на этапе ввода, модерации и классификации, потом постановка на нереляционную витрину, оптимизированную для отбора. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
numerovan |
|
|||
Опытный Профиль Группа: Участник Сообщений: 549 Регистрация: 1.12.2007 Репутация: нет Всего: 2 |
В общем прочитал я про EAV, любопытный конечно подход, но что-то эту модель критикуют часто.
Вот интересная статья http://zlob.in/2013/01/struktura-tablic-dl...ernet-magazina/ Еще вот это вот интересно http://fenix.kiev.ua/eav_vs_row_modeling_t...i_na_postgresql Какой отсюдова делаю вывод: 1. EAV не использовать, а использовать ROW MODELING (все таки части будут забиваться NULL-ами) 2. Создать таблицу главных сущностей, вписать туда то что есть общее во всех объявлениях 3. Для каждой категории сделать свою таблицу, тогда получится таблиц 53. 4. Далее программным путем распределять объявления по этим таблицам, а если делать общий поиск, то придется перебирать искомую фразу во всех этих таблицах ... а что делать!? На мой взгляд это более нейтральный подход к быстродействию, редактированию и удобству хранения. Что скажете? |
|||
|
||||
tzirechnoy |
|
||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 0 Всего: 16 |
Цэны нет только у денег. Да и то, FOREX что-то такое предоставляет. Заголовок -- тожэ обязательная часть вежливого сообщения. Список фоток можно ещё в единую таблицу (один-ко-многим или многие-ко-многим).
Вполне жызненно. В отличие от идеи хранить DESC/user в каждой таблицэ отдельно. Можно ещё пообъединять в иерархию таблиц: объединить, например, новые и БУ автомобили, выкинуть только отличия в разные таблицы. Но, истинно говорю тебе, хорошые индэксы при большых объёмах и потоках данных делают пенальти скорости от EAV ничтожным. А классификатор, который редактируется только через DDL и программируется только через строковые шаблоны -- тяжёл в поддержке. |
||||
|
|||||
Zloxa |
|
||||
Чо? Профиль Группа: Завсегдатай Сообщений: 3470 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
ну ну. поведай плиз какие "индэксы хоршы" для отбора вроде
если sex, country и birth_date хранятся в вертикалке. Это сообщение отредактировал(а) Zloxa - 15.8.2014, 13:35 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
||||
|
|||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 0 Всего: 16 |
Чаще всего -- отдельный индэкс на (type=const('birth_date'), value) выдаёт очень близкий к нужному результат. В смысле -- что скорость выборки не слишком отличается от оптимальной. В остальных можно выкручиваться: например, сделать EAV-таблицу через view на реальное EAV и комплект ускорятелей с индэксами. PS Кстати, топикстартеру: про country='' -- очень правильное замечание, регион такжэ должэн являться свойством основной таблички. |
|||
|
||||
numerovan |
|
|||
Опытный Профиль Группа: Участник Сообщений: 549 Регистрация: 1.12.2007 Репутация: нет Всего: 2 |
Создал таблицы, упорядочил как мог, вот что в итоге получилось если ориентироваться на сайт Avito.ru:
1. Создал основную конечно же таблицу для объявлений http://ipicture.kz/images/2014/08/jftuaazqmq02ne2a08ym.jpg
http://ipicture.kz/images/2014/08/lqwfo1tf82jkkurjqz5a.jpg
3. Далее идут таблицы каторые сильно отличаются своими параметрами. Из 53 планируемых таблиц 8 из них опустились, потому что по параметрам им хватало таблицы из первого пункта ... 30 таблиц улетело в таблицу под пукнтом 2 ... а другие оставшиеся они и являются специфическими, каторые нужно создать отдельно. В итоге получается 14 таблиц, львиную долю каторых составляют таблицы связанные с недвижемостью. http://ipicture.kz/images/2014/08/930k33yjbnvzrgg7132d.jpg И конечно же имеются таблицы (уместилось в 150 таблиц) в каторых лежат значения категорий, к примеру автомобили (марка, модель и т.д.). Какие могу быть нюансы: - допустим придется какую-то категорию расширить по параметрам или добавить новую категорию, если эти подкатегории, данной категории, не привышают двух пунтов/опций, то тогда можно смело заливать в таблицу из пункта 2, если больше параметров и они отлич. от всех придыдущих таблиц, то придется создать для этой категории отдельную таблицу. Такие вот дела ... Добавлено через 8 минут и 13 секунд Не сомниваюсь что придется еще не раз там исправлять детали. Это пока черновой вариант. Спасибо. Это сообщение отредактировал(а) numerovan - 18.8.2014, 02:26 |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 0 Всего: 16 |
Это называется "справочники". Да, выглядит достаточно вменяемо. |
|||
|
||||
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |