|
|
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
Добрый день. Столкнулся с одной проблемой - не придумал оптимального варианта для решения. Итак, есть некий товар (термометр), у которого есть параметр "Диапазон температур". Это параметр по своему типу является диапазоном, т.е. имеет мин. и макс. значения. Встает вопрос: как хранить диапазон в таблице при условии, что по нему будет вестись поиск. Один из выходов - создать доп. поле в котором хранить тип параметра - число, диапазон (мин), диапазон (макс), строка... С другой стороны я знаю, что у категории "Термометры" параметр "Диапазон температур" всегда является диапазоном (не может он быть обычным числом ни при каких обстоятельствах). Получается, что если у каждого товара из этой категории писать в соседнем поле ValueType значение range, то это получится несколько избыточно (ведь всегда диапазон). Можно было бы просто создать еще одну таблицу, куда вписать, что в такой-то категории такой-то параметр является диапазоном. Но тогда не понятно, как тогда искать данный товар, ведь в этом случае я не знаю какое из двух значений является мин., а какое максимумом диапазона. Может быть это уже где-то решено... Помогите, плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 21:51 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
Любое значение - диапазон. Даже если его конца совпадают. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 22:05 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
Сильно зависит от предметной области. Если речь о торговле бытовыми термометрами, то вполне вероятно, что окажется достаточно буквально нескольких фиксированных строковых значений. Например, "30 - 40 градусов" (медицинские), "-20 - 50 градусов" (комнатные), "20-300 градусов" (кулинарные). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 22:08 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
MySQL рассматривает все числа как диапазон? Дело в том, если у меня число, то в запросе будет одно условие WHERE, если диапазон, то другое условие WHERE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 22:12 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
А, ну это пример только. У моих товаров значений диапазонов гораздо больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 22:14 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
xmlnsДело в том, если у меня число, то в запросе будет одно условие WHERE, если диапазон, то другое условие WHERE.Ну так и стройте запрос в зависимости от выбранных параметров. В чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 22:16 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
Категорий множество, а робот-построитель запросов - всего один на все категории. Вот ему и нужно узнавать, как строить запрос исходя значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 22:27 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
xmlns, И? Где постановка задачи? Какие именно виды поиска будут нужны? Какие еще действия с этими данными нужно проводить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 22:32 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
Ааа, поиск стандартный - по заданному диапазону выбрать все, что в нем находится. (на сайте есть форма со слайдерами - один ползунок слайдера отвечает за мин. значение, а второй - за макс.) Также есть список сравнения - сравниваются только товары одной категории (хороший пример - яндекс маркет - так и поиск с применением слайдера и список сравнения). Хм, пришла идея - вообще разделить таблицу с характеристиками товаров на несколько - в одной только числовые параметры, во второй - диапазоны, в третьей - строки, в четвертой - вообще какая другая сущность. Имеет право на жизнь или ерунда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 23:28 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
я так понимаю, речь вообще не о термометрах нужно вести есть таблица товар характеристики товара могут быть разными по типу и количеству (целое число/вещественное/диапазон/набор значений) отсюда - характеристики товара - отдельная таблица, связанная с товаром : код товара, наименование хар-ки, ее тип если не очень много параметров - можно ее денормализовать, т.е. вписать туда все возможные поля, и использовать только те, что подходят иначе нужна третья таблица - значения характеристик товара поиск в любом случае получится довольно сложным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 00:11 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
xmlnsпоиск стандартный - по заданному диапазону выбрать все, что в нем находится. (на сайте есть форма со слайдерами - один ползунок слайдера отвечает за мин. значение, а второй - за макс.)Для этого вообще диапазоны в свойствах товара не нужны, только в интерфейсе поиска. Например, задает пользователь диапазон высоты товара от 20 до 30 см. Тогда в результат должны попасть 21, 25 и 27 см. У меня есть схожая система. Значения все строковые и вынесены в справочник. Для всех значений задан порядок сортировки в отдельном числовом поле. У характеристик есть флаг "использовать поиск по диапазону". Если он установлен, то в интерфейсе для данной характеристики рисуется два выбора (списка или выпадающего списка), а поиск происходит как раз по диапазону в поле сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 00:14 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
xmlns, Невижу никаких сложностей. Таблица товаров, таблица параметров, таблица значений параметров. Все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 00:19 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
miksoftxmlnsпоиск стандартный - по заданному диапазону выбрать все, что в нем находится. (на сайте есть форма со слайдерами - один ползунок слайдера отвечает за мин. значение, а второй - за макс.)Для этого вообще диапазоны в свойствах товара не нужны, только в интерфейсе поиска. Например, задает пользователь диапазон высоты товара от 20 до 30 см. Тогда в результат должны попасть 21, 25 и 27 см. У меня есть схожая система. Значения все строковые и вынесены в справочник. Для всех значений задан порядок сортировки в отдельном числовом поле. У характеристик есть флаг "использовать поиск по диапазону". Если он установлен, то в интерфейсе для данной характеристики рисуется два выбора (списка или выпадающего списка), а поиск происходит как раз по диапазону в поле сортировки. Да, но значение параметра "Высота" - обычное числовое. Тут все просто) Теперь пользователь хочет найти товар по параметру "Рабочее напряжение" - ищет от 5В до 9В. Этот параметр является диапазоном, потому в выборку должны попасть: 5-9, 4-7,8-12,6-7,3-12 (логика поиска по диапазону кажется такая). В выборку не попадают: все что <5 и все что >9. А чтобы это найти нужно, чтобы для мин. значения было свое условие WHERE, для максимального - свое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 09:19 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
Злой Бобр, Вы имеете в виду так?: Таблица параметров: ParameterID | ParameterName Таблица товаров: CategoryID | ID | Price | Weight | Name | ... Таблица значений: ID | ParameterID | Value | ValueType ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 09:30 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
xmlnsТеперь пользователь хочет найти товар по параметру "Рабочее напряжение" - ищет от 5В до 9В. Этот параметр является диапазоном, потому в выборку должны попасть: 5-9, 4-7,8-12,6-7,3-12 (логика поиска по диапазону кажется такая). В выборку не попадают: все что <5 и все что >9. А чтобы это найти нужно, чтобы для мин. значения было свое условие WHERE, для максимального - свое.Заведите две отдельные характеристики - "минимальное рабочее напряжение" и "максимальное рабочее напряжение". По каждой ищите по диапазону, но каждая будет отдельной величиной. Заодно появится возможность искать по открытому диапазону, например, "от 5В" или "не более 9В". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 09:41 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
Ну т.е. возле каждого значения добавить поле ValueType, куда вписать: rangeMin или rangeMax или decimal или string. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 09:48 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
xmlns, Зачем около значения-то? В таблице параметров добавте колонку "единица измерения". Если есть параметры: "минимальное измеряемое значение" и "максимальное измеряемое значение" или "минимальное рабочее напряжение" и "максимальное рабочее напряжение", и так понятно, что речь идет о диапазонах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 09:56 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
baracs, Ааа, я кажется забыл еще про один случай рассказать: есть товары (из одной и той же категории), у которых один и тот же параметр может быть либо обычным числом, либо диапазоном. Например "Электронные схемы": ЭС1 - Рабочее напряжение: 4-6V ЭС2 - Рабочее напряжение: 8V ЭС3 - Рабочее напряжение: 1-10V ЭС4 - Рабочее напряжение: 9.6V Если я задам рабочее напряжение как диапазон, то непонятно как искать числовые значения. Если я задам - как число, то непонятно как искать диапазоны. Т.е. тут либо придется продублировать числовые параметры дважды (и тем самым превратить их в диапазон вида 9.6-9.6), либо создать доп. поле, куда вписать, что же это за тип параметра у конкретного товара. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 10:08 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
xmlnsbaracs, Ааа, я кажется забыл еще про один случай рассказать: есть товары (из одной и той же категории), у которых один и тот же параметр может быть либо обычным числом, либо диапазоном. Например "Электронные схемы": ЭС1 - Рабочее напряжение: 4-6V ЭС2 - Рабочее напряжение: 8V ЭС3 - Рабочее напряжение: 1-10V ЭС4 - Рабочее напряжение: 9.6V Если я задам рабочее напряжение как диапазон, то непонятно как искать числовые значения. Если я задам - как число, то непонятно как искать диапазоны. Т.е. тут либо придется продублировать числовые параметры дважды (и тем самым превратить их в диапазон вида 9.6-9.6), либо создать доп. поле, куда вписать, что же это за тип параметра у конкретного товара.А это как раз тот случай, когдаDimitry SibiryakovЛюбое значение - диапазон. Даже если его конца совпадают.Т.е. дублируйте значение в двух характеристиках. Выглядеть, правда, будет несколько коряво: ЭС2 - Минимальное рабочее напряжение: 8V ЭС2 - Максимальное рабочее напряжение: 8V Но насколько это критично? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 10:12 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
xmlnsТ.е. тут либо придется продублировать числовые параметры дважды (и тем самым превратить их в диапазон вида 9.6-9.6), либо создать доп. поле, куда вписать, что же это за тип параметра у конкретного товара. Ну и чем вас не устраивает первый вариант? Анализировать в запросах доп. поле - геморройное занятие, часто приводящее к кривым планам выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 10:20 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
А если в категории 98 товаров имеют числовое значение, а 2 товара - диапазоны. Преобразовать диапазон в число - значит наврать покупателю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 10:36 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
xmlnsА если в категории 98 товаров имеют числовое значение, а 2 товара - диапазоны. Преобразовать диапазон в число - значит наврать покупателю.Возможно, есть смысл разделить категорию на две. Или еще как-то изменить категоризацию. И даже если категоризацию изменить нельзя, то не вижу ничего страшного в том, что у 98 товаров будет две характеристики с одинаковыми значениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 10:44 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
miksoftxmlnsА если в категории 98 товаров имеют числовое значение, а 2 товара - диапазоны. Преобразовать диапазон в число - значит наврать покупателю.Возможно, есть смысл разделить категорию на две. Или еще как-то изменить категоризацию. И даже если категоризацию изменить нельзя, то не вижу ничего страшного в том, что у 98 товаров будет две характеристики с одинаковыми значениями. xmlns имеет ввиду, что из-за каких-то уникальных товаров менять схему БД - не наменяешься. Сегодня диапазоны, завтра три значения, послезавтра четыре... И ради этого держать два-три-четыре совпадающих значения в остальных полях = путь к говнокоду, который может поддерживать только создавший. И то эффективно в первый месяц после создания - пока не забыл, что имел ввиду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 11:43 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
Hawkmoonxmlns имеет ввиду, что из-за каких-то уникальных товаров менять схему БД - не наменяешься.Не понял, в чем именно возражение? Менять схему БД я нигде не предлагаю. Только сделать сразу и правильную. Hawkmoonзавтра три значения, послезавтра четыре...Три и четыре значения - это уже не диапазоны, а множественные значения, которые вполне укладываются в предлагаемую мной схему. Hawkmoonкоторый может поддерживать только создавшийДокументирование никто не отменял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 11:57 |
|
||
|
Типы значений характеристик товаров
|
|||
|---|---|---|---|
|
#18+
Hawkmoon, Вы меня поняли правильно!=) Вот попался уникальный товар - что делать? Не добавлять в перечень - плохо, менять структуру БД - плохо. Значит надо придумать универсальную структуру. А как же делают в CMS? Там вообще добавить можно все что угодно... Правда ни в одном магазине я не встречал подробный поиск и кучей феничек. Разве что Яндекс.Маркет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 12:01 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38639558&tid=1540889]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 509ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...