|
|
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто НЕ проблема. Хоть 200 JOIN-ов.Увы, максимум 61. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2013, 16:22:09 |
|
||
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
debloggerИ еще, следите за смыслом. Неотъемлимые свойства "отъемлять" не надо. Особенно когда они один фиг - числа. За каким выносить диагонали, диаметры и длину члена в справочник?. Блин, ну надо ему. Вполне логично в некоторых областях. НАпример, покрышки -- они не бывают произвольных размеров, логично завести все их предопределённые размеры в справочник. Конечно, не все свойства имеют такие ограничения, это я согласен. Но это уж пусть автор сам решает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2013, 16:23:16 |
|
||
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
miksoftMasterZivЭто НЕ проблема. Хоть 200 JOIN-ов.Увы, максимум 61. Ну, ок, значит 20 или 30 свойств можем задать в фильтре, не так и мало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2013, 16:24:03 |
|
||
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Покрышки связаны непосредственно с дисками и вторично с характеристиками автомобиля как то масса, скорость. Диски связаны со ступицей, ступица связана с подвеской, подвеска связана с кузовом и так далее и чтобы вывести весь этот bill of material нам тут жизни не хватит. С чем интересно связана диагональ телевизора? С аквариумом, да? :) В первом случае у нас реляционная бд во всей красе, во втором извращение. Premature optimization, короче. Вместо того, чтобы подумать как упростить, автор начитавшись предисловий начал дробить индивидуальность и сам себя загоняет в подполье. Короче, забейте предложенный вариант немногими данными и соедините как процитировано. Посмотрите что получилось и тогда делайте выводы. Какие к черту навороченные джойны, когда прямиком надо соединить три таблицы. И вообще, кто ж автору мешает проиндексировать эти диагонали из живых данных и вывести оглавление списком? В том числе той тетки - чтобы выбирала ближайшее значение, если совсем тупая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2013, 17:13:16 |
|
||
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
Вот если бы для телевизоров продавались глицериновые линзы как это было в прошлом, тогда я понимаю - пришлось бы сводить диагонали линз и экранов. Но и тогда можно было бы живо подобрать линзу под ящик задав порог отклонения (threshold) запрашивая данные прямо из таблей ТВ и ЛИНЗА. Ну допустим применительно к анальным покрышкам для телефонов это справедливо. Но там же нет строгих критериев. Длина-ширина подходит - значит мое. Достаточно обмерить все телефоны и сравнить с тем какие есть размеры пленочек для экранов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2013, 17:17:49 |
|
||
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
deblogger... Ты вот сейчас с кем разговаривал ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2013, 18:18:30 |
|
||
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
MasterZivExOLiNeВроде бы нашел решение: Код: sql 1. 2. 3. 4. 5. 6. Производится поиск по таблице-связке всех возможных совпадений через ИЛИ. Потом полученные строки группируются по p_id и подсчитывается количество p_id из результата. Если count(p_id) равен количеству запрашиваемых из базы свойств - значит у продукта есть все запрашиваемые свойства. Но это конечно только подзапрос, но самый важный. Это неверный ответ. В смысле, запрос. Можно хотя бы аргументировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2013, 03:33:22 |
|
||
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
Автору: ExOLiNeCygapb-007так? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Нет. При выборе пары(ff_id-fv_id) 1-2, 2-3 выводит два товара, хотя должен вернуть NULL Я бы продолжил разработку этого варианта. Он не совсем верный, но "движется в правильном направлении". В смысле, НЕ требует 100-500 джойнов. Не вижу проблем его переработать. Он просто отдаст любые найденные пары (IN == или), а вам надо чтобы были все ( == и). Внутренний подзапрос неплохо сгруппировать и подсчитать количество совпадений для каждого продукта. Ну и ещё, у себя, такое чудо перерабатывал в джойны вместо подзапроса в качестве условия. Вроде пошустрее, но сильно -не тестил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2013, 06:15:07 |
|
||
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
ScareCrow, причём тут "фасетный поиск", развенёте свою мысль или оставите "как есть"? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2013, 06:18:16 |
|
||
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
Arhat109Автору: ExOLiNeпропущено... Нет. При выборе пары(ff_id-fv_id) 1-2, 2-3 выводит два товара, хотя должен вернуть NULL Я бы продолжил разработку этого варианта. Он не совсем верный, но "движется в правильном направлении". В смысле, НЕ требует 100-500 джойнов. Не вижу проблем его переработать. Он просто отдаст любые найденные пары (IN == или), а вам надо чтобы были все ( == и). Внутренний подзапрос неплохо сгруппировать и подсчитать количество совпадений для каждого продукта. Ну и ещё, у себя, такое чудо перерабатывал в джойны вместо подзапроса в качестве условия. Вроде пошустрее, но сильно -не тестил.Уже было предложено ( 14642792 ), но там тоже начнутся проблемы при выборе из однотипных значений (например, белого или серого цветов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2013, 07:59:38 |
|
||
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
=)8), ну дык. Не только же COUNT() является "критерием"... можно и поаккуратнее фильтровать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2013, 10:06:16 |
|
||
|
Выборка продуктов по свойствам
|
|||
|---|---|---|---|
|
#18+
=)8)там тоже начнутся проблемы при выборе из однотипных значений (например, белого или серого цветов) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. sqlfiddle.com Еще проще (не потребуются дополнительные индексы), если в таблицу пользовательского выбора записывать ID а не текст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2013, 11:04:04 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38351130&tid=1836345]: |
0ms |
get settings: |
4ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 315ms |

| 0 / 0 |
