Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Типы значений характеристик товаров / 25 сообщений из 35, страница 1 из 2
12.05.2014, 21:51
    #38639221
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
Добрый день.
Столкнулся с одной проблемой - не придумал оптимального варианта для решения. Итак, есть некий товар (термометр), у которого есть параметр "Диапазон температур". Это параметр по своему типу является диапазоном, т.е. имеет мин. и макс. значения. Встает вопрос: как хранить диапазон в таблице при условии, что по нему будет вестись поиск. Один из выходов - создать доп. поле в котором хранить тип параметра - число, диапазон (мин), диапазон (макс), строка...
С другой стороны я знаю, что у категории "Термометры" параметр "Диапазон температур" всегда является диапазоном (не может он быть обычным числом ни при каких обстоятельствах). Получается, что если у каждого товара из этой категории писать в соседнем поле ValueType значение range, то это получится несколько избыточно (ведь всегда диапазон). Можно было бы просто создать еще одну таблицу, куда вписать, что в такой-то категории такой-то параметр является диапазоном.
Но тогда не понятно, как тогда искать данный товар, ведь в этом случае я не знаю какое из двух значений является мин., а какое максимумом диапазона.

Может быть это уже где-то решено... Помогите, плз.
...
Рейтинг: 0 / 0
12.05.2014, 22:05
    #38639225
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
Любое значение - диапазон. Даже если его конца совпадают.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.05.2014, 22:08
    #38639228
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
Сильно зависит от предметной области.
Если речь о торговле бытовыми термометрами, то вполне вероятно, что окажется достаточно буквально нескольких фиксированных строковых значений. Например, "30 - 40 градусов" (медицинские), "-20 - 50 градусов" (комнатные), "20-300 градусов" (кулинарные).
...
Рейтинг: 0 / 0
12.05.2014, 22:12
    #38639231
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
MySQL рассматривает все числа как диапазон?

Дело в том, если у меня число, то в запросе будет одно условие WHERE, если диапазон, то другое условие WHERE.
...
Рейтинг: 0 / 0
12.05.2014, 22:14
    #38639234
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
А, ну это пример только. У моих товаров значений диапазонов гораздо больше.
...
Рейтинг: 0 / 0
12.05.2014, 22:16
    #38639237
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
xmlnsДело в том, если у меня число, то в запросе будет одно условие WHERE, если диапазон, то другое условие WHERE.Ну так и стройте запрос в зависимости от выбранных параметров. В чем проблема?
...
Рейтинг: 0 / 0
12.05.2014, 22:27
    #38639245
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
Категорий множество, а робот-построитель запросов - всего один на все категории. Вот ему и нужно узнавать, как строить запрос исходя значений.
...
Рейтинг: 0 / 0
12.05.2014, 22:32
    #38639248
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
xmlns,

И? Где постановка задачи? Какие именно виды поиска будут нужны? Какие еще действия с этими данными нужно проводить?
...
Рейтинг: 0 / 0
12.05.2014, 23:28
    #38639276
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
Ааа,
поиск стандартный - по заданному диапазону выбрать все, что в нем находится. (на сайте есть форма со слайдерами - один ползунок слайдера отвечает за мин. значение, а второй - за макс.)
Также есть список сравнения - сравниваются только товары одной категории (хороший пример - яндекс маркет - так и поиск с применением слайдера и список сравнения).

Хм, пришла идея - вообще разделить таблицу с характеристиками товаров на несколько - в одной только числовые параметры, во второй - диапазоны, в третьей - строки, в четвертой - вообще какая другая сущность. Имеет право на жизнь или ерунда?
...
Рейтинг: 0 / 0
13.05.2014, 00:11
    #38639298
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
я так понимаю, речь вообще не о термометрах нужно вести
есть таблица товар
характеристики товара могут быть разными по типу и количеству
(целое число/вещественное/диапазон/набор значений)

отсюда - характеристики товара - отдельная таблица, связанная с товаром : код товара, наименование хар-ки, ее тип

если не очень много параметров - можно ее денормализовать, т.е. вписать туда все возможные поля, и использовать только те, что подходят
иначе нужна третья таблица - значения характеристик товара

поиск в любом случае получится довольно сложным
...
Рейтинг: 0 / 0
13.05.2014, 00:14
    #38639300
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
xmlnsпоиск стандартный - по заданному диапазону выбрать все, что в нем находится. (на сайте есть форма со слайдерами - один ползунок слайдера отвечает за мин. значение, а второй - за макс.)Для этого вообще диапазоны в свойствах товара не нужны, только в интерфейсе поиска.
Например, задает пользователь диапазон высоты товара от 20 до 30 см. Тогда в результат должны попасть 21, 25 и 27 см.

У меня есть схожая система. Значения все строковые и вынесены в справочник. Для всех значений задан порядок сортировки в отдельном числовом поле. У характеристик есть флаг "использовать поиск по диапазону". Если он установлен, то в интерфейсе для данной характеристики рисуется два выбора (списка или выпадающего списка), а поиск происходит как раз по диапазону в поле сортировки.
...
Рейтинг: 0 / 0
13.05.2014, 00:19
    #38639304
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
xmlns,

Невижу никаких сложностей. Таблица товаров, таблица параметров, таблица значений параметров. Все.
...
Рейтинг: 0 / 0
13.05.2014, 09:19
    #38639403
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
miksoftxmlnsпоиск стандартный - по заданному диапазону выбрать все, что в нем находится. (на сайте есть форма со слайдерами - один ползунок слайдера отвечает за мин. значение, а второй - за макс.)Для этого вообще диапазоны в свойствах товара не нужны, только в интерфейсе поиска.
Например, задает пользователь диапазон высоты товара от 20 до 30 см. Тогда в результат должны попасть 21, 25 и 27 см.

У меня есть схожая система. Значения все строковые и вынесены в справочник. Для всех значений задан порядок сортировки в отдельном числовом поле. У характеристик есть флаг "использовать поиск по диапазону". Если он установлен, то в интерфейсе для данной характеристики рисуется два выбора (списка или выпадающего списка), а поиск происходит как раз по диапазону в поле сортировки.

Да, но значение параметра "Высота" - обычное числовое. Тут все просто)
Теперь пользователь хочет найти товар по параметру "Рабочее напряжение" - ищет от 5В до 9В. Этот параметр является диапазоном, потому в выборку должны попасть: 5-9, 4-7,8-12,6-7,3-12 (логика поиска по диапазону кажется такая). В выборку не попадают: все что <5 и все что >9. А чтобы это найти нужно, чтобы для мин. значения было свое условие WHERE, для максимального - свое.
...
Рейтинг: 0 / 0
13.05.2014, 09:30
    #38639410
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
Злой Бобр,
Вы имеете в виду так?:
Таблица параметров:
ParameterID | ParameterName

Таблица товаров:
CategoryID | ID | Price | Weight | Name | ...

Таблица значений:
ID | ParameterID | Value | ValueType
...
Рейтинг: 0 / 0
13.05.2014, 09:41
    #38639428
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
xmlnsТеперь пользователь хочет найти товар по параметру "Рабочее напряжение" - ищет от 5В до 9В. Этот параметр является диапазоном, потому в выборку должны попасть: 5-9, 4-7,8-12,6-7,3-12 (логика поиска по диапазону кажется такая). В выборку не попадают: все что <5 и все что >9. А чтобы это найти нужно, чтобы для мин. значения было свое условие WHERE, для максимального - свое.Заведите две отдельные характеристики - "минимальное рабочее напряжение" и "максимальное рабочее напряжение". По каждой ищите по диапазону, но каждая будет отдельной величиной. Заодно появится возможность искать по открытому диапазону, например, "от 5В" или "не более 9В".
...
Рейтинг: 0 / 0
13.05.2014, 09:48
    #38639431
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
Ну т.е. возле каждого значения добавить поле ValueType, куда вписать: rangeMin или rangeMax или decimal или string.
...
Рейтинг: 0 / 0
13.05.2014, 09:56
    #38639441
baracs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
xmlns,

Зачем около значения-то? В таблице параметров добавте колонку "единица измерения".

Если есть параметры: "минимальное измеряемое значение" и "максимальное измеряемое значение" или "минимальное рабочее напряжение" и "максимальное рабочее напряжение", и так понятно, что речь идет о диапазонах.
...
Рейтинг: 0 / 0
13.05.2014, 10:08
    #38639456
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
baracs,

Ааа, я кажется забыл еще про один случай рассказать: есть товары (из одной и той же категории), у которых один и тот же параметр может быть либо обычным числом, либо диапазоном. Например "Электронные схемы":
ЭС1 - Рабочее напряжение: 4-6V
ЭС2 - Рабочее напряжение: 8V
ЭС3 - Рабочее напряжение: 1-10V
ЭС4 - Рабочее напряжение: 9.6V

Если я задам рабочее напряжение как диапазон, то непонятно как искать числовые значения. Если я задам - как число, то непонятно как искать диапазоны.
Т.е. тут либо придется продублировать числовые параметры дважды (и тем самым превратить их в диапазон вида 9.6-9.6), либо создать доп. поле, куда вписать, что же это за тип параметра у конкретного товара.
...
Рейтинг: 0 / 0
13.05.2014, 10:12
    #38639461
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
xmlnsbaracs,

Ааа, я кажется забыл еще про один случай рассказать: есть товары (из одной и той же категории), у которых один и тот же параметр может быть либо обычным числом, либо диапазоном. Например "Электронные схемы":
ЭС1 - Рабочее напряжение: 4-6V
ЭС2 - Рабочее напряжение: 8V
ЭС3 - Рабочее напряжение: 1-10V
ЭС4 - Рабочее напряжение: 9.6V

Если я задам рабочее напряжение как диапазон, то непонятно как искать числовые значения. Если я задам - как число, то непонятно как искать диапазоны.
Т.е. тут либо придется продублировать числовые параметры дважды (и тем самым превратить их в диапазон вида 9.6-9.6), либо создать доп. поле, куда вписать, что же это за тип параметра у конкретного товара.А это как раз тот случай, когдаDimitry SibiryakovЛюбое значение - диапазон. Даже если его конца совпадают.Т.е. дублируйте значение в двух характеристиках.

Выглядеть, правда, будет несколько коряво:
ЭС2 - Минимальное рабочее напряжение: 8V
ЭС2 - Максимальное рабочее напряжение: 8V
Но насколько это критично?
...
Рейтинг: 0 / 0
13.05.2014, 10:20
    #38639469
baracs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
xmlnsТ.е. тут либо придется продублировать числовые параметры дважды (и тем самым превратить их в диапазон вида 9.6-9.6), либо создать доп. поле, куда вписать, что же это за тип параметра у конкретного товара. Ну и чем вас не устраивает первый вариант?

Анализировать в запросах доп. поле - геморройное занятие, часто приводящее к кривым планам выполнения.
...
Рейтинг: 0 / 0
13.05.2014, 10:36
    #38639487
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
А если в категории 98 товаров имеют числовое значение, а 2 товара - диапазоны. Преобразовать диапазон в число - значит наврать покупателю.
...
Рейтинг: 0 / 0
13.05.2014, 10:44
    #38639492
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
xmlnsА если в категории 98 товаров имеют числовое значение, а 2 товара - диапазоны. Преобразовать диапазон в число - значит наврать покупателю.Возможно, есть смысл разделить категорию на две. Или еще как-то изменить категоризацию.
И даже если категоризацию изменить нельзя, то не вижу ничего страшного в том, что у 98 товаров будет две характеристики с одинаковыми значениями.
...
Рейтинг: 0 / 0
13.05.2014, 11:43
    #38639558
Hawkmoon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
miksoftxmlnsА если в категории 98 товаров имеют числовое значение, а 2 товара - диапазоны. Преобразовать диапазон в число - значит наврать покупателю.Возможно, есть смысл разделить категорию на две. Или еще как-то изменить категоризацию.
И даже если категоризацию изменить нельзя, то не вижу ничего страшного в том, что у 98 товаров будет две характеристики с одинаковыми значениями.

xmlns имеет ввиду, что из-за каких-то уникальных товаров менять схему БД - не наменяешься. Сегодня диапазоны, завтра три значения, послезавтра четыре...

И ради этого держать два-три-четыре совпадающих значения в остальных полях = путь к говнокоду, который может поддерживать только создавший. И то эффективно в первый месяц после создания - пока не забыл, что имел ввиду.
...
Рейтинг: 0 / 0
13.05.2014, 11:57
    #38639578
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
Hawkmoonxmlns имеет ввиду, что из-за каких-то уникальных товаров менять схему БД - не наменяешься.Не понял, в чем именно возражение? Менять схему БД я нигде не предлагаю. Только сделать сразу и правильную.
Hawkmoonзавтра три значения, послезавтра четыре...Три и четыре значения - это уже не диапазоны, а множественные значения, которые вполне укладываются в предлагаемую мной схему.
Hawkmoonкоторый может поддерживать только создавшийДокументирование никто не отменял.
...
Рейтинг: 0 / 0
13.05.2014, 12:01
    #38639583
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы значений характеристик товаров
Hawkmoon,

Вы меня поняли правильно!=)

Вот попался уникальный товар - что делать? Не добавлять в перечень - плохо, менять структуру БД - плохо.
Значит надо придумать универсальную структуру.

А как же делают в CMS? Там вообще добавить можно все что угодно... Правда ни в одном магазине я не встречал подробный поиск и кучей феничек. Разве что Яндекс.Маркет.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Типы значений характеристик товаров / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]