SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 17.01.2012 10:45:50

donald_duck
Участник
Зарегистрирован: 17.01.2012
Сообщений: 2

Как настроить динамичный MySQL запрос?

Суть проблемы такова.  Скажем, есть сайт по продаже спецтехники. У каждой спецтехники есть свои общие поля. Такие как: тип спецтехники, цена спецтехники, цвет и тд. И есть свои уникальные характеристики. Например: у автокрана: длина стрелы и длина лебедки, а у экскаватора: глубина копания и объем ковша, высота выгрузки и тд.
Так вот как мне организовать архитектуру своих таблиц, что бы можно было искать по уникальным характеристикам.  Пример вывода фильтров можно посмотреть на alibaba . com и www. ebay . com

Если можно то примерную архитектуру и MySQL запрос. Буду очень благодарен.

Неактивен

 

#2 17.01.2012 11:36:37

Бананище
Участник
Зарегистрирован: 11.01.2012
Сообщений: 14

Re: Как настроить динамичный MySQL запрос?

Здесь быть не может одного единственного универсального запроса, равно как и универсальной структуры.
Можно представить экскаватор и педобира - обобщённым классом объектов, составить для них таблицы общих для всех экземпляров класса - характеристик (таблица цветов та же самая).

Также вполне возможна ситуация, когда три экземпляра объектов имеют общие, но непересекающие характеристики. Например добавим к нашему мишке и экскаватору - ну скажем сферическую чууниевую трубу. Мы видим, что мишка и экскаватор - имеют общее свойство "цвет", а экскаватор и труба - имеют общее свойство "чугуниевые".

Надеюсь, уже стало ясно, что одним запросом тут не обойтись, равно как и некой одной суперуниверсальной таблицей. Также надеюсь - стало ясно, что за внешней простотой и функциональностью подобной реализации (на том же ебее к примеру) - скрывается весьма сложная серверная логика, и структура базы данных. (Или вы думаете, ебей индусы кодили, за еду?).

И не у всех хорошо и правильно получается реализовать подобную систему. За печальными примерами - далеко ходить не надо - 1С...

Неактивен

 

#3 18.01.2012 00:24:55

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Как настроить динамичный MySQL запрос?

Ну, перефразируя немного другими словами — действительно имеет смысл сделать
несколько независимых табличек для разных видов техники.

Неактивен

 

#4 18.01.2012 09:05:52

donald_duck
Участник
Зарегистрирован: 17.01.2012
Сообщений: 2

Re: Как настроить динамичный MySQL запрос?

Конечно, для создания интернет магазина только под тематику продажа спецтехники, лучше разделить по таблицам. Тем боле не так много разделов. Но когда хочется написать что то оптимальное . что бы можно было без всякого труда перепрыгнуть с одной тематики на другу. То, рыская вчера по интернету, наткнулся на очень интересную архитектуру.  И называется она Entity Attribute Value.
http://en.wikipedia.org/wiki/Entity%E2% … alue_model

Всем спасибо!

Неактивен

 

#5 22.01.2012 19:45:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Как настроить динамичный MySQL запрос?

Дада, так начинают делать все, а потом начинают спрашивать: «а почему оно
у меня работает так медленноооооо?». А ответ простой. Если в нормальных условиях
у Вас табличка на 10 000 строк с 10 полями, то в этом случае у Вас табличка на
100 000 строк с тремя полями, т.е Вам нужно делать в 10 раз больше перемещений
головки по диску (не считая того, что нужно прочитать в 30 раз больше одинаковой
информации).

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson