powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / база товаров - у кого как и что посоветуете
88 сообщений из 88, показаны все 4 страниц
база товаров - у кого как и что посоветуете
    #33662909
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача вероятно довольно банальная но лишь сейчас с ней столкнулся за хз сколько лет... :)

и так ...
цель: спроэктировать базу товаров в которой может находиться что угодно от ну не знаю сахара, карандашей и до допустим машин ...

у всех у них будут совершенно различные свойства ...

максимум до чего додумался это:
1) категории товаров будут храниться как nested sets
2) будет таблица-список всевозможных названий свойств товаров и соответственно названия полей и их тип (вес, длина, высота, скорость, цвет, тип дисплея, тип кузова и прочее)
2) у каждого типа товаров будет своя собственная таблица на пример
для машин - своя
для холодильников - своя
для мобильных телефонов
для продуктов - своя

что то в этом роде ...

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

при добавлении очередного типа продукта на пример "стиральная машина"
будет визард при помощи которого я создам отдельную таблицу путём выбора полей из таблицы-списка свойств продуктов (+ будут предустановленные по умолчанию поля такие id, company_id, category_id ... которые обязательны для всех), соответственно будет визард и для редактирования структуры таблицы (вдруг что то упущу)

ничего лучше не придумалось :\
кто что думает или посоветует по этому поводу ? может можно как то лучше организовать или улучшить данную органицацию ?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33662920
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хммм сначала написал своё потом наткнулся и почитал
http://www.sql.ru/forum/actualthread.aspx?tid=258519

там конечно оно правельно всё с точки зрения реляционной базы ... но для нормальной базы на нормальном сервере ... но почему то мне кажется что mysql 4.1
на шаред хостинге при сотнях тысяч записей немножко того ... уйдёт при поиске (а задача именно под такую конфигурацию)
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33662937
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как мне кажется большинство задач будет реализованно довольно просто, от поиска товара в категории до генерации формы поиска в отдельно взятой категории товаров ...

на пример генерация формы поиска товаров легко реализуется из структуры таблицы и таблицы-списка всевозможных свойств

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

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

может есть какая то задача с которой невозможно будет справиться простыми средствами при такой организации ?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33663017
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JackSхммм сначала написал своё потом наткнулся и почитал
http://www.sql.ru/forum/actualthread.aspx?tid=258519

там конечно оно правельно всё с точки зрения реляционной базы ... но для нормальной базы на нормальном сервере ... но почему то мне кажется что mysql 4.1
на шаред хостинге при сотнях тысяч записей немножко того ... уйдёт при поиске (а задача именно под такую конфигурацию)

у меня MS SQL Server. но мне тоже эта схема не подходит. нужно что-то другое придумать...
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33663362
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уменьшить число таблиц, но не доходя до чистого EAV можно за счет маппинга параметров в обоих измерениях - по горизонтали (полям) и по вертикали (таблицам, типам записей в таблицах).

Сегментация хранилища значений:

TVal_Number (OID, Val01 Number,...Val<N> Number)
TVal_Date (OID, Val01 Date ,...Val<N> Date )
...

Справочник параметров содержит маппинг параметров на таблицы и поля:

ParamType -> TableName
ParamID,ObjectType -> PField

Можно придумать и другие схемы маппинга.

Запросы сплошь динамические, но для Вашей задачи это не должно быть проблемой - они все равно будут формироваться вне сервера БД
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33663437
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин ! Никаких таблиц признаков ! Нужны ДВЕ таблицы.
Первая- справочник с древовидной структурой (см.ниже).
Вторая- собственно значения справочника(Товар/НомерНодыДерева/НаборЗначений)
Товары
Стиралки
Обороты
Габариты
Загрузка
Утюги
Мощность
Функции
Грузовики
Тоннаж
Расход топлива
Услуги
Доставка
Ремонт
Установка

Достаточно сделать привязку товара/групп товара к нужной ветви дерева.
Все запросы будут унифицированы. Не нужны сложные динамические запросы.
В любой момент можно добавить новый признак, при этом НИЧЕГО НЕ ПЕРЕПИСЫВАЯ !!!!!!!!!!!!!
Упростится отчётность. Избыточность данных будет незначительной.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33664241
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JackS
при добавлении очередного типа продукта на пример "стиральная машина"
будет визард при помощи которого я создам отдельную таблицу путём выбора полей из таблицы-списка свойств продуктов (+ будут предустановленные по умолчанию поля такие id, company_id, category_id ... которые обязательны для всех), соответственно будет визард и для редактирования структуры таблицы (вдруг что то упущу)

ничего лучше не придумалось :\
жаль
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33665210
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVБлин ! Никаких таблиц признаков ! Нужны ДВЕ таблицы.
[]
Достаточно сделать привязку товара/групп товара к нужной ветви дерева.
Все запросы будут унифицированы. Не нужны сложные динамические запросы.
В любой момент можно добавить новый признак, при этом НИЧЕГО НЕ ПЕРЕПИСЫВАЯ !!!!!!!!!!!!!
Упростится отчётность. Избыточность данных будет незначительной.Ну-ну, а кто такие группы товара и привязка товара к нескольким группам ? А единицы измерения? А типы нодов первой таблицы не различаются т.е. можно товар привязать к ноде "Товары\Стиралки\Обороты"?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33665284
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVНужны ДВЕ таблицы.Первая- справочник с древовидной структурой
Не, три:
1.Список товаров (ID,название, шифр)
2.Атрибуты товаров (ID,атрибут, значение,дата)
3.Классификатор товаров(ID,наименование)
Ссылка на 3 - один из атрибутов
и храни че хошь, в т.ч. и атрибуты-таблицы
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33665755
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод LSVНужны ДВЕ таблицы.Первая- справочник с древовидной структурой
Не, три:
1.Список товаров (ID,название, шифр)
2.Атрибуты товаров (ID,атрибут, значение,дата)
3.Классификатор товаров(ID,наименование)
Ссылка на 3 - один из атрибутов
и храни че хошь, в т.ч. и атрибуты-таблицы

и теперь представляем как мы сгенерим форму поиска для определённого типа товаров по его признакам ... издеваетесь ? мне что ли выбирать все товары определённого типа из здоровеннейшей таблицы (парочку тысяч) за одно цепляя список всех его аттрибутов (на пример ширина высота цвет и прочее) из другой и потом это всё дело сгрупировать и хз по каким из них искать это всё на шаред хостинге ? а не состаримся ли мы и не загнётся ли таймаутом скриптец ?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33665756
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dogen JackS
при добавлении очередного типа продукта на пример "стиральная машина"
будет визард при помощи которого я создам отдельную таблицу путём выбора полей из таблицы-списка свойств продуктов (+ будут предустановленные по умолчанию поля такие id, company_id, category_id ... которые обязательны для всех), соответственно будет визард и для редактирования структуры таблицы (вдруг что то упущу)

ничего лучше не придумалось :\
жаль

а мне обидно за гондурас из которого вы ... флейма только не нужно плиз ...
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33665825
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если забыть о куче таблиц и почерпнув пару идей из написанного здесь и не здесь, то что думаете о такого рода структуре:

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

cat_id cat_name cat_allow_items

cat_allow_items - флаг - возможно ли в эту категорию добавлять товары

пример категории:
...бытовая техника
.......холодильники
.......стиральные маш.
.......пылесосы

2) список товаров

item_id cat_id company_id item_name

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

cat_id attr_id attr_searchable

attr_searchable - флаг - будет ли доступен поиск по этому аттрибуту в этой категории

4) таблица аттрибутов товаров - список всевозможных аттрибутов

attr_id attr_type attr_name attr_unit

attr_type - тип аттрибута что то вроде - логический, список, величина - поле понадобится для того что бы:
1) знать как хранятся данные об атрибуте (вопрос про это ниже)
2) для генерации формы поиска
3) может ещё для чего то :)
attr_unit - еденица измерения для отображения: кило, сантиметр, метр, км/ч етц.

5) самая весёлая на мой взгляд таблиц(а/ы) :\ - значения атрибутов конкретного товара

предложите варианты плиз за одно и раскритикуйте этот ...
первое что приходит в голову это много записей на каждый товар - таблица товаров будет большая а эта чуть ли не в 10 раз больше получится да ещё и корявая :(

item_attr_id item_id attr_id attr_value

item_attr_id - автоинкремент - возможно для связи описанной ниже и понадобится

то есть будет что то вроде на примемер для:
товара id = 10 (допустим холодильник - ПЛИЗ без флейма на тему "такого холодильника быть не может" - данные "с потолка")
attr_id = 4 (глубина - см)
attr_id = 5 (высота - см)
attr_id = 6 (ширина - см)
attr_id = 7 (количество камер - штук)
attr_id = 8 (объём пусть холодильной камеры - допустим куб.см)
attr_id = 9 (объём морозильной камеры - допустим куб.см)
attr_id = 10 (доступные цвета - список цветов)
attr_id = 11 (цена - у.ё.)

item_attr_id item_id attr_id attr_value1 10 4 802 10 5 2203 10 6 704 10 7 25 10 8 40006 10 9 80007 10 10 СССССС--FFFFFF--AAAAAA8 10 11 400

СССССС--FFFFFF--AAAAAA - доступные цвета - разделитель запятая или тип поля вроде "enum" или "set" - очень давно лишь раз ими пользовался не в курсе на данный момент об их слабо-сильных сторонах

а теперь назревшие вопросы:
предложите плс как лучше организовать связку "товар - его атрибуты" вместо таблицы 5)

как лучше (быстрее и легче для базы при поиске/выводе) организовать хранение attr_type списочного типа (в примере это список доступных цветов СССССС,FFFFFF,AAAAAA)
заводить ещё одну таблицу для хранения такого типа атрибутов для товара не хотелось бы ... уж больно много всяких джоинов по не маленьким таблицам ... боюсь это жестоко будет для мускла и шаред хостинга а-ля

item_attr_id attr_value7 СССССС7 FFFFFF7 AAAAAA
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33665831
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пожалуйста в комментах отвечайте в терминах попроще плиз, пусть не так разжёванно описывайте как я но так что бы я понял ... за 6 лет к сожалению так и не удосужился нормально сесть и прочесть пару трудов на тему проэктирования баз данных .. всё как то отрывками и находу ... стыдно но такова селяви :(
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33665872
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вполне нормальная структура. Только таблица 5 лишняя. Значения можно хранить в таблице 3.

Я так понял, что таблица категорий предполагается иерархическая? Если глубина иерархии конечна и одинакова для всех предков, то разумно сделать по таблице для каждого уровня. Если конечна, но не одинакова, то разумно искусственно выравнять длину. В приведенном примере она конечна с глубиной два. В этом случае достаточно сделать две таблицы - Категории и Подкатегории.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33665959
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Вполне нормальная структура. Только таблица 5 лишняя. Значения можно хранить в таблице 3.

Я так понял, что таблица категорий предполагается иерархическая? Если глубина иерархии конечна и одинакова для всех предков, то разумно сделать по таблице для каждого уровня. Если конечна, но не одинакова, то разумно искусственно выравнять длину. В приведенном примере она конечна с глубиной два. В этом случае достаточно сделать две таблицы - Категории и Подкатегории.

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

а пятая таблица - это уже список товаров и конкретных значений атрибутов характеризующих тот или иной товар.

как посоветуете хранить список атрибутов таак что бы это небыло тяжко при поиске по одному из них
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33665963
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос в догонку ...

по идее любой товар может находиться только в своей конечной категории ?
или же есть товары которые могут находиться в нескольких категориях при различных родителях данных категорий (не могу придумать такого примера но что то мне не даёт покоя эта мысль :) )
я вот к чему спрашиваю, всегда ли получится товар определить однозначно на пример

вместо примера что я написал:
...бытовая техника
.......холодильники
.......стиральные маш.
.......пылесосы

такая на пример структура относительно "холодильника":

..холодильное оборудование
.....бытовое
.......... наш холодильник
.....промышленное

нету ли варианта что продукт условно названный наш холодильник
сможет быть причислен к двум категориям с разными родителями:

..холодильное оборудование
.....бытовое
.......... наш холодильник
.....промышленное
..........блабла1
..........блабла2
..........блабла3
..другой родитель
.....другая категория
..........другая подкатегория
............... наш холодильник
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33666178
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRУменьшить число таблиц, но не доходя до чистого EAV можно за счет маппинга параметров в обоих измерениях - по горизонтали (полям) и по вертикали (таблицам, типам записей в таблицах).

Сегментация хранилища значений:

TVal_Number (OID, Val01 Number,...Val<N> Number)
TVal_Date (OID, Val01 Date ,...Val<N> Date )
...

Справочник параметров содержит маппинг параметров на таблицы и поля:

ParamType -> TableName
ParamID,ObjectType -> PField

Можно придумать и другие схемы маппинга.

Запросы сплошь динамические, но для Вашей задачи это не должно быть проблемой - они все равно будут формироваться вне сервера БД

что такое EAV и маппинг??
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33666246
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аленочкачто такое EAV и маппинг?? :)
К EAV пришел автор в [2561252]. Термин устоявшийся. STFF .
Маппинг (мое понимание) - отображение данных на память. Таблицы СУБД рассматриваются как память. Описания типов объектов, атрибутов составляют словарь данных . По имени атрибута и типу объекта по словарю однозначно определяется в какой таблице, колонке и по какому ключу нужно искать данные.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33666413
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JackSесли забыть о куче таблиц и почерпнув пару идей из написанного здесь и не здесь, то что думаете о такого рода структуре:

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

cat_id cat_name cat_allow_items

cat_allow_items - флаг - возможно ли в эту категорию добавлять товары

пример категории:
...бытовая техника
.......холодильники
.......стиральные маш.
.......пылесосы

2) список товаров

item_id cat_id company_id item_name

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

cat_id attr_id attr_searchable

attr_searchable - флаг - будет ли доступен поиск по этому аттрибуту в этой категории

4) таблица аттрибутов товаров - список всевозможных аттрибутов

attr_id attr_type attr_name attr_unit

attr_type - тип аттрибута что то вроде - логический, список, величина - поле понадобится для того что бы:
1) знать как хранятся данные об атрибуте (вопрос про это ниже)
2) для генерации формы поиска
3) может ещё для чего то :)
attr_unit - еденица измерения для отображения: кило, сантиметр, метр, км/ч етц.

5) самая весёлая на мой взгляд таблиц(а/ы) :\ - значения атрибутов конкретного товара

предложите варианты плиз за одно и раскритикуйте этот ...
первое что приходит в голову это много записей на каждый товар - таблица товаров будет большая а эта чуть ли не в 10 раз больше получится да ещё и корявая :(

item_attr_id item_id attr_id attr_value

item_attr_id - автоинкремент - возможно для связи описанной ниже и понадобится

то есть будет что то вроде на примемер для:
товара id = 10 (допустим холодильник - ПЛИЗ без флейма на тему "такого холодильника быть не может" - данные "с потолка")
attr_id = 4 (глубина - см)
attr_id = 5 (высота - см)
attr_id = 6 (ширина - см)
attr_id = 7 (количество камер - штук)
attr_id = 8 (объём пусть холодильной камеры - допустим куб.см)
attr_id = 9 (объём морозильной камеры - допустим куб.см)
attr_id = 10 (доступные цвета - список цветов)
attr_id = 11 (цена - у.ё.)

item_attr_id item_id attr_id attr_value1 10 4 802 10 5 2203 10 6 704 10 7 25 10 8 40006 10 9 80007 10 10 СССССС--FFFFFF--AAAAAA8 10 11 400

СССССС--FFFFFF--AAAAAA - доступные цвета - разделитель запятая или тип поля вроде "enum" или "set" - очень давно лишь раз ими пользовался не в курсе на данный момент об их слабо-сильных сторонах

а теперь назревшие вопросы:
предложите плс как лучше организовать связку "товар - его атрибуты" вместо таблицы 5)

как лучше (быстрее и легче для базы при поиске/выводе) организовать хранение attr_type списочного типа (в примере это список доступных цветов СССССС,FFFFFF,AAAAAA)
заводить ещё одну таблицу для хранения такого типа атрибутов для товара не хотелось бы ... уж больно много всяких джоинов по не маленьким таблицам ... боюсь это жестоко будет для мускла и шаред хостинга а-ля

item_attr_id attr_value7 СССССС7 FFFFFF7 AAAAAA


я думаю что всё правильно. сама накидала аналогично...
в пятой таблице предлагаю завести ещё поле id_parent (это как раз для хранения значений спискового типа...)

у меня вот такая структура 5-ой таблицы:

id - код записи
id_param - код параметра товара (атрибута)
id_part - код товара
value - значение
id_parent - ссылка на предыдущее значение из списка (для организации списка)

id_parent будет принимать целые значения. если значение id_parent = -1, то запись является самой первой в списке (или вообще единственной для других не списковых типов данных)

Ну например (см. рисунок)
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33666424
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уточнение:

[id_parent] - ссылка на [id] записи предыдущего значения из списка..

Аленочка тм
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33666451
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объединять группы товара со справочником товара, можно, но крайне не желательно. Построение дерева может занимать не мало драгоценных секунд, а строить придётся часто. А вот в дереве групп товара обычно 50...500строк.
Тем более, что в принципе возможно(хотя нежелательно) нахождение товара одновременно в нескольких группах. Пример: Окорочка могут быть и в группе "Курятина" и в группе "Сырьё для производства". Иногда это может быть удобно.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33666472
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JackSвопрос в догонку ...
по идее любой товар может находиться только в своей конечной категории ?

Два случая встречались.
Для поиска.
Холодильник автомобильный - хочется, чтобы человек мог его найти (имеется ввиду найти навигацией по категориям) и от корня Оборудование для автомобилей и от Бытовая техника. На набор свойств это никак не влияет.

Более интересный случай - множественное наследование свойств, повторное использование наборов свойств.
Это уже для администратора системы, хотя можно использовать и для форматирования отображения.
Например категории
ТВ камера - набор свойств1.
Компьютер - набор свойств2.
Ноутбук с ТВ камерой наследует оба эти набора свойств, Мобильник с ТВ камерой наследует набор свойств1.

Есть еще момент групп товаров, отобранных неким поиском. Вот точка зрения Общероссийского классификатора (приложение). Группа 51.5603 -это те же холодильники , но сгруппированные по объему камеры.
Наиболее популярные запросы также можно категоризировать в некое дерево.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33667392
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JackSи теперь представляем как мы сгенерим форму поиска для определённого типа товаров по его признакам ... издеваетесь ?
Ну ессно подразумевается что вся эта структура описана в метаданных - еще одна (или больше) таблица - а без этого действительно не разберешься.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33667535
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR Аленочкачто такое EAV и маппинг?? :)
К EAV пришел автор в [2561252]. Термин устоявшийся. STFF .
Маппинг (мое понимание) - отображение данных на память. Таблицы СУБД рассматриваются как память. Описания типов объектов, атрибутов составляют словарь данных . По имени атрибута и типу объекта по словарю однозначно определяется в какой таблице, колонке и по какому ключу нужно искать данные.

мда, пригрузился я там :) ... хАчу советов по проще :)
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33667691
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Словарь, таблица для связки категории товаров и возможных атрибутов
cat_id attr_id attr_searchable attrFieldХолодильник 4 (глубина ) Yes Value1Холодильник 5 (высота) Yes Value2Холодильник 6 (ширина)No Value3Холодильник 7 (количество камер )Yes Value4Холодильник 10 (доступные цвета) Yes _List...

Значения атрибутов конкретного товара для:
товара id = 10 (допустим холодильник - ПЛИЗ без флейма на тему "такого холодильника быть не может" - данные "с потолка")
attr_id = 4 (глубина - см)
attr_id = 5 (высота - см)
attr_id = 6 (ширина - см)
attr_id = 7 (количество камер - штук)
attr_id = 10 (доступные цвета - список цветов)


Скалярные значения
item_id Value1Value2 Value3Value4...10 80 220 70 2...
Списковые
item_id attr_id attr_value1010 СССССС1010 FFFFFF1010 AAAAAA

Коль для одной категории число параметров меньше максимального числа полей в таблице СУБД то хватит одной таблицы значений, иначе или несколько таблиц или несколько типов записей.
Реально применяется, правда для MS SQL, Oracle.

Так проще? :)
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33667770
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аленочка
в пятой таблице предлагаю завести ещё поле id_parent (это как раз для хранения значений спискового типа...)

у меня вот такая структура 5-ой таблицы:

id - код записи
id_param - код параметра товара (атрибута)
id_part - код товара
value - значение
id_parent - ссылка на предыдущее значение из списка (для организации списка)

id_parent будет принимать целые значения. если значение id_parent = -1, то запись является самой первой в списке (или вообще единственной для других не списковых типов данных)

Ну например (см. рисунок)


я думал о таком способе хранения списка,
с той лишь разницей что parent_id будет:
-1 не список
-2 список
>0 ссылка на автоинкремент ID товара у которого parent_id = -2

что то на подобии такой таблицы:

item_attr_id item_id attr_id attr_value item_attr_parent1 10 4 80 -12 10 5 220 -13 10 6 70 -14 10 7 2 -15 10 8 4000 -16 10 9 8000 -1 7 10 10 -2 8 10 10 СССССС 7 9 10 10 FFFFFF 7 10 10 10 AAAAAA 711 10 11 400 -1
но я отказался от такого подхода (хоть и не окончательно)
просто в этом случае и так очень большая таблица превращается просто в огромную, а ведь именно она будет наиболее нагруженной ...

а в чём смысл ссылки parent_id на предыдущую запись (у вас) а не на родителя (у меня) ? что то больно сложно будет выбирать/искать при таком подходе ...

если речь идёт о приоритетности вывода/поиска данных атрибутов товара то для этого достаточно и автоинкремента ...

по этому и спросил только о двух вариантах
1) отдельная таблица для списковых значений
2) а) или же специальный тип поля
б) спец формат хранения данных

1) - при поиске даёт гарантию совпадения
2.а) - ничего не могу сказать по этому поводу (а что вы можете сказать? как оно будет использовано при поиске ?)
2.б) - думал использовать LIKE для простоты не нагружая при распарске - гарантии совпадения нет но вероятность высока
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33667772
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что легче для базы:
1) две таблицы допустим с миллионом записей в одной и 10 миллионами в другой (речь о таблицах 2) список товаров и 5) значения атрибутов конкретного товара )
2) 1,000 таблиц в каждой по 1,000 записей (но каждая из этих таблиц будет иметь порядка 10-15 полей)

решил ещё раз спросить об этом... понимаю что 2) это извращение ещё то ... но что то меня пугают джоины/подзапросы по нездорово огромным таблицам в случае 1) нагрузка будет мне кажется жуть какая даже с учётом индексов и ограничений на выборку
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33668474
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ну что ж. Если Вы считаете, что пятая таблица нужна, то мне остается только отойти в сторону. Если Вы хелаете набивать шишки самостоятельно - Бог Вам в помощь!

Вы хотели, что бы Вас похвалили, какой Вы умный и придумали супер-пупер? Так нет. Ваша задача настолько тривиальна, что даже непонятно, какие могут быть проблемы. А ваше решение - попытка почесать правое ухо лыжей, зажатой в левой руке.

===========
Не надо пугаться джоинов. При правильных индексах все простые выборки будет работать на ура.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33668579
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Ну что ж. Если Вы считаете, что пятая таблица нужна, то мне остается только отойти в сторону. Если Вы хелаете набивать шишки самостоятельно - Бог Вам в помощь!

Вы хотели, что бы Вас похвалили, какой Вы умный и придумали супер-пупер? Так нет. Ваша задача настолько тривиальна, что даже непонятно, какие могут быть проблемы. А ваше решение - попытка почесать правое ухо лыжей, зажатой в левой руке.

===========
Не надо пугаться джоинов. При правильных индексах все простые выборки будет работать на ура.

с радостью ошибусь, для этого сюда и написал что бы ошибиться и разумных мыслей почитать...

а вместо ёрничества лучше бы привели конкретный пример структуры совмещённых 3) и 5) таблиц ибо я ума не приложу как это ... поля через запятую вроде как не трудно написать, мышкой выделить и ЦСВ нажать ....

так же рад что моя задача столь тривиальна для Вас что вы готовы посмотрев на все мои "старания" сходу предложить свой единственно верный вариант ? с радостью приму вашу структуру столь тривиальной базы ... у вас и дамп надеюсь завалялся что бы я неуч посмотрел да уму разуму набрался ? ну что поделать не всем быть такими умными как Вы ...

очень надеюсь что Вы не отступитесь в сторону и снизайдёте своей благодатью на мою лыжу и направите её верным путём яко товарищ Ленин к моему правому уху...

ну а ежели серьёзно то топик открыт как раз для того что бы раскритиковали, помогли дельным советом, исправили ощибки а не для ёрничества и словоблудства ... все мы в словоблудстве сильны ...
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33668583
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRСловарь, таблица для связки категории товаров и возможных атрибутов
cat_id attr_id attr_searchable attrFieldХолодильник 4 (глубина ) Yes Value1Холодильник 5 (высота) Yes Value2Холодильник 6 (ширина)No Value3Холодильник 7 (количество камер )Yes Value4Холодильник 10 (доступные цвета) Yes _List...

Значения атрибутов конкретного товара для:
товара id = 10 (допустим холодильник - ПЛИЗ без флейма на тему "такого холодильника быть не может" - данные "с потолка")
attr_id = 4 (глубина - см)
attr_id = 5 (высота - см)
attr_id = 6 (ширина - см)
attr_id = 7 (количество камер - штук)
attr_id = 10 (доступные цвета - список цветов)


Скалярные значения
item_id Value1Value2 Value3Value4...10 80 220 70 2...
Списковые
item_id attr_id attr_value1010 СССССС1010 FFFFFF1010 AAAAAA

Коль для одной категории число параметров меньше максимального числа полей в таблице СУБД то хватит одной таблицы значений, иначе или несколько таблиц или несколько типов записей.
Реально применяется, правда для MS SQL, Oracle.

Так проще? :)

гораздо проще :) ток вот вопросы есть ...
предпологается что будет уйма полей в таблице "Скалярные значения" и данная таблица будет общей для всех продуктов ?
то есть предположим у меня наберётся 500 всевозможных не списковых атрибутов товаров.
как я понял у таблицы "Скалярные значения" будет 500 полей ? :\ данная таблица будет общей для всех товаров и в некоторых полях для некоторых товаров будет стоять значение а в некоторых а-ля ничего ?
если я верно понял что думается мне что вариант с 1000 таблиц будет попроще да и пожалуй поровнее, разве нет ? :\
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33668594
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV
Тем более, что в принципе возможно(хотя нежелательно) нахождение товара одновременно в нескольких группах. Пример: Окорочка могут быть и в группе "Курятина" и в группе "Сырьё для производства". Иногда это может быть удобно.

ну "Сырьё для производства" это очень злая категория :) в неё можно впихнуть всё дерево категорий по второму разу и уйму товаров ...

то есть получается что бы реализовать возможность нахождения товара в нескольких категориях (раз уж эта возможность существует)

изначальную таблицу 2) список товаров

item_id cat_id company_id item_name

разобьём на две таблицы:
первая:
2.1.а) список товаров (без привязки к категории)

item_id company_id item_name

2.1.б) это как вариант оставить упоминание о категории как об основной категории и добавить новое поле

item_id cat_id company_id item_name cat_id_inc

cat_id_inc - новое логическое поле 0/1 - находится ли данный товар в других категориях и в зависимости от него уже можно организовать возможность "товар -> несколько категорий"

вторая:
2.2) список товар-категория

item_id cat_id

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

вариант 2.1.б) с дополнительным полем + вторая опциональная таблица мне кажется достаточно гибким, что скажете ?

ModelR
Два случая встречались.
Для поиска.
Холодильник автомобильный - хочется, чтобы человек мог его найти (имеется ввиду найти навигацией по категориям) и от корня Оборудование для автомобилей и от Бытовая техника. На набор свойств это никак не влияет.


в выше приведённой структуре 2.1.б) + поле + опциональная таблица вроде как можно будет отобразить товар и в дереве и организовать его поиск из любой категории в которой он находится ... вроде всё ровно получается ?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33668606
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR

Более интересный случай - множественное наследование свойств, повторное использование наборов свойств.
Это уже для администратора системы, хотя можно использовать и для форматирования отображения.
Например категории
ТВ камера - набор свойств1.
Компьютер - набор свойств2.
Ноутбук с ТВ камерой наследует оба эти набора свойств, Мобильник с ТВ камерой наследует набор свойств1.



да, занятный вариант, но кажется мне что это непосредственно к структуре не относится, это скорее какое то "специальное предложение" или некая "промо акция" построенная на базе имеющихся у фирмы товаров и для такого рода вариантов можно завести отдельную табличку связывающую

(ноутбук с камерой)
promo_id, company_id, item_id
4, 10, 5 (NOTEBOOK)
4, 10, 8 (CAMERA)

не думаю что такие варианты будут часто востребованными, но как опционал можно добавить ...

нужно будет к этой возможности писать не хилый контроллер что бы товары включались сюда в зависимости от парент категории и не получалось "курица + 1ГБ ДДР памяти в подарок"
возможно создать для контроллера таблицу уровней допустимой вложенности категорий для создания комбинированного товара
+ контроллер для управления отображением в листинге (в начало, конец списка такие товары, либо же каждый десятый на пример)

но это мне кажется уже лирика ... придумать можно много :)

ModelR
те же холодильники , но сгруппированные по объему камеры.


это вариант поиска в категории холодильники по объёму морозильной камеры

ModelR
Наиболее популярные запросы также можно категоризировать в некое дерево.


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

первое что пришло в голову:
завести спец табличку с несколькими полями ...
при поисковом запросе генерить ХЭШ и писать его в табличку (если есть - увеличить счётчик + поле с названием директории со сгенеренным темплэйтом + дата последнего обновления)

в конце каждой на пример недели для наиболее популярных (методика выбора - какая кому нравится) генерить директорию с готовыми страницами результатов поиска и далее при навигации по ним уже базу не трогать вообще :)

в зависимости от даты или на пример каунтера кратного 100 перегенеривать эти страницы (крон скрипт) ... в общем это уже больше программинг и на прямую с базами не связано но спасибо за наталкивание на идею :)
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #33668610
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возможно на пример идея с разгрузкой базы и не нова для некоторых товарищей ;) но моё дело поделиться тем что в голову по ходу пришло, кому то может и пригодится ... я ведь всётаки программер в большей мере а не спец по проэктированию баз и мыслю больше на уровне "разгрузить ресурсы" а не "корректная структура" :) - плиз без особой критики и флейма тем более что это был всего лишь "сырец", а то чую я что найдутся товарищи желающие увести в сторону разговор от основной задачи - БАЗА ...
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34457157
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А в какую из этих таблиц заносится, скажем, экземпляр холодильника ЗИЛ-3М (заводской номер 15632) - в Список товаров (таблица № 2)?
Еще вопрос по таблице атрибутов товаров № 4: допустим, если множество атрибутов подразделяется на группы и нужно поддерживать целостность?
Причем для разных товаров это могут быть разные группы? (Эти вопросы начали задаваться в постах с 14 апреля). Предположим, у меня 100 разных товаров. Каждый товар нормируется по 5 показателям. Эти показатели у разных товаров могут быть одинаковы или неодинаковы. Они могут быть выражены числом (или диапазоном), строковым значением (выбираемым из нескольких т.е., видимо, должны находиться в таблицах - на каждый показатель, представлющий одну из нескольких возможных строк - своя), логическим значением и т.д. Автору удалось найти удовлетворяющую его структуру данных?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34482123
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Up.
У меня вопрос: почему в модели Тенцера не нашлось места диапазонным величинам? Как их лучше хранить и определять? Вот, например: свыше 5 - до 50 (вкл.)?
Если я правильно понял, Тенцер на каждый тип величин предлагает сделать свою таблицу. Автор же поста, а также Аленочка предлагают для атрибутов общую таблицу, но обрабатывать их по признаку (логический, числовой и т.д.). И мне такой подход импонирует больше, хотя м.б. тут какие-то подводные камни?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34488325
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объясните, пожалуйста, про диапазоны! (см. пред. пост)
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34489237
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДUp.
У меня вопрос: почему в модели Тенцера не нашлось места диапазонным величинам? Как их лучше хранить и определять? Вот, например: свыше 5 - до 50 (вкл.)?
Если я правильно понял, Тенцер на каждый тип величин предлагает сделать свою таблицу. Автор же поста, а также Аленочка предлагают для атрибутов общую таблицу, но обрабатывать их по признаку (логический, числовой и т.д.). И мне такой подход импонирует больше, хотя м.б. тут какие-то подводные камни?
Ну сделайте таблицу для диапазонных величин. Четыре поля - ПК, от, до, ссылка на таблицу единиц измерения.

Если единицы измерения разные (по сути, а не по множителю-префиксу), то разные таблицы.

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

Проблемы нет никакой.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34489656
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Ну сделайте таблицу для диапазонных величин.

А для дискретных диапазонов? А для списков (кстати, разных типов)? ;)
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34491482
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему "записывать всё символами (... есть бред)"? Вообще-то мы все книги пишем символами и т.д. в частности, сообщения на этот форум.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34502140
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДА почему "записывать всё символами (... есть бред)"? Вообще-то мы все книги пишем символами и т.д. в частности, сообщения на этот форум.Потому что конвертировать придется
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34502169
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Ну сделайте таблицу для диапазонных величин.

А для дискретных диапазонов? ...ибо сказано: таблица такая годится для любых диапазонов. По желанию можете разнообразить их описания, можете разные типы диапазонов выделить в разные таблицы ;)

guest_20040621А для списков (кстати, разных типов)? ;)Вопрос неоднозначный и рациональное решение зависит не в последнюю очередь от способа хранения оных списков. На практике аналогичную задачу решать приходилось, однозначно красивое решение Вам, несомненно известно (опишете?), а я своё кривое и вспоминать не хочу (работает, и ладно).
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34502181
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Ну сделайте таблицу для диапазонных величин.

А для дискретных диапазонов? А для списков (кстати, разных типов)? ;)
А, я вообще написал про диапазоны как атрибуты товара (например, вес брутто 1...1.1 кг )

Те диапазоны, которые Вы имеете в виду, не сильно интересны - сводятся или к спискам, или к вещественным числам и т.п.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34502254
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> ибо сказано: таблица такая годится для любых диапазонов

Хочется снять шляпу и начать говорить на старославянском. ;)

Поясните, пожалуйста, как Вы намерены хранить эти самые дискретные диапазоны. Ничего заслуживающего внимания со своей стороны предложить не могу. Ни изящного, ни кривого.

> сводятся или к спискам, или к вещественным числам

Если бы.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34510249
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> ибо сказано: таблица такая годится для любых диапазонов

Хочется снять шляпу и начать говорить на старославянском. ;)

Поясните, пожалуйста, как Вы намерены хранить эти самые дискретные диапазоны. Ничего заслуживающего внимания со своей стороны предложить не могу. Ни изящного, ни кривого.
Еще раз попытаюсь объяснить, что если товарищ имел в виду необходимость хранить атрибуты некоего товара, задаваемые в виде "от сих до сих", то для хранения этих атрибутов в виде a+-b или [a,b] достаточно двух полей (плюс суррогатный ключ). Вы же не думаете, что придется хранить именованный набор таких диапазонов и выбирать из этого набора значение атрибута товара?

guest_20040621> сводятся или к спискам, или к вещественным числам

Если бы.
Если можно, расшифруйте немного, а то я не пойму, в чем, собственно, проблема. Тупой пример из области, отосящейся к теме этой ветки.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34510256
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621как Вы намерены хранить эти самые дискретные диапазоны

Я все время забываю, что Вы говорите о дискретных диапазонах. Ввиду непрофильного образования так и не знаю, что это такое. Надо бы определить.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34510594
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> расшифруйте

Массив.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34510778
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> расшифруйте

Массив.
Таблица товаров.

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

Это, конечно, геморрой, но с помощью SQL и известной матери каталог товаров напечатать будет можно.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34510834
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> ссылку на таблицу типов атрибутов

Это понятно. Хранить-то сами массивы как? Ведь геморройно до безобразия получается.

> потенциально приведет к багам

Да даже не в этом дело. Концептуально решение кривое. Структура EAV плоха тем, что ее семантика (при наличии метамодели, разумеется) выражена (если вообще выражена) на другом уровне, отличном от уровня семантики реляционной структуры. Винегрет получается. Со всеми вытекающими, естественно. В принципе, эту проблему можно решить, вводя дополнительное семантическое описание уже для реляционной части базы данных. Да, избыточно. Но других вариантов нет. Так что EAV - это только в подаче Тенцера легко и просто.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34511621
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> ссылку на таблицу типов атрибутов

Это понятно. Хранить-то сами массивы как? Ведь геморройно до безобразия получается.

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

Я так понимаю, что многие дают возможность работать вышеописанным образом, и при этом еще и новые таблицы для хранения массивов создавать. Мне такие решения не нравятся, потому что за внешней простотой там скрывается ужос . Но что остается делать?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34541119
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дискуссия пошла в другом направлении, тоже очень интересном. А я можно опять чуть вернусь к вопросу, который задал?
Предположим, эти 100 разных товаров могут быть сгруппированы в несколько категорий. Показатели этих товаров см. предыдущий пост. Выделение товаров в категории спрогнозировать трудно. Возможно, показатели каждого товара столь индивидуальны, что и относить эти товары в какую-л. категорию смысла не имеет. Вопрос: разрешенные наборы показателей связывать с товаром или с категорией? На мой взгляд категории должны существовать сами по себе, а связывать надо все-таки с конкретным товаром. Хотя, конечно, было бы удобней связывать с категорией и автоматически получать набор показателей при отнесении товара в категорию.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34541505
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КД Вопрос: разрешенные наборы показателей связывать с товаром или с категорией? На мой взгляд категории должны существовать сами по себе, а связывать надо все-таки с конкретным товаром. Хотя, конечно, было бы удобней связывать с категорией и автоматически получать набор показателей при отнесении товара в категорию.
Все товары потенциально имеют максимально возможный набор показателей, но конкретный набор определяется категорией (иерархической). При смене категории товар получает новый набор показателей (а старый сохраняется в истории).
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34542238
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДДискуссия пошла в другом направлении, тоже очень интересном. А я можно опять чуть вернусь к вопросу, который задал?
Предположим, эти 100 разных товаров могут быть сгруппированы в несколько категорий. Показатели этих товаров см. предыдущий пост. Выделение товаров в категории спрогнозировать трудно. Возможно, показатели каждого товара столь индивидуальны, что и относить эти товары в какую-л. категорию смысла не имеет. Вопрос: разрешенные наборы показателей связывать с товаром или с категорией? На мой взгляд категории должны существовать сами по себе, а связывать надо все-таки с конкретным товаром. Хотя, конечно, было бы удобней связывать с категорией и автоматически получать набор показателей при отнесении товара в категорию.

Это зависит от того, как Вы определяете категорию.

Вдруг Вам захочется иметь данный конкретный стол в Мебели и в Компьютерном оборудовании?

Хотя организовать для товара пересечение наборов показателей, характеризующих категории, тоже не проблема (есть нюанс, требовать ли заполнения всех полей?)

Вообще эта ветка - довольно-таки бессистемная болтовня. При грамотно составленных требованиях подобную задачу решить не составляет труда.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34543781
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Dogen
Нет, не согласен, не бессистемная. Впрочем, кому как.
Да, согласен, определить категорию - та еще задачка.

> При грамотно составленных требованиях подобную задачу решить не составляет труда.
Нету их, нету - грамотно составленных требований! Сам себе постановщик задачи, проектировщик, кодер, тестировщик и т.д.
Да, если мы сталкиваемся с пересечением категорий, то, м.б. и впрямь все-таки лучше назначать показатели конкретным товарам. Не так быстро и удобно как категориям, но зато мы застрахованы от проблем при перетаскивании из категории в категорию?

2 мод
Сохранять в истории бывший набор - очень интересная мысль. Я подумаю.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34544816
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КД
DogenВдруг Вам захочется иметь данный конкретный стол в Мебели и в Компьютерном оборудовании?
Да, согласен, определить категорию - та еще задачка.

Это нормальная ситуация - просто это два разных классификатора и стол одновременно принадлежит сразу двум категориям и соотв. имеет разный набор свойств, зависящий от взгляда.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34546097
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод КД
DogenВдруг Вам захочется иметь данный конкретный стол в Мебели и в Компьютерном оборудовании?
Да, согласен, определить категорию - та еще задачка.

Это нормальная ситуация - просто это два разных классификатора и стол одновременно принадлежит сразу двум категориям и соотв. имеет разный набор свойств, зависящий от взгляда.
Я и говорю - как определить категорию. Допускать вхождение товара в несколько категорий или нет. Определить категорию товара-то несложно :)

В наследовании текущего набора признаков от нескольких категорий не вижу никаких проблем.

Набор признаков категории - это шаблон набора признаков товара.

Что делать при выбытии товара из категории, или при удалении признака из набора признаков конкретной категории - ну разве это проблема? Проще всего ничего не делать, тем более, если данные о признаках товара уже внесены в БД.

А при поиске надо юзать то что актуально на сегодня, хранить набор всех когда-либо действовавших признаков товара ничто не мешает.

Но если подходить по-взрослому, то надо давать внедренцам выбирать используемую логику .
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34546290
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dogen
В наследовании текущего набора признаков от нескольких категорий не вижу никаких проблем.

Набор признаков категории - это шаблон набора признаков товара.


Категория (классификатор) может иметь свои собственные свойства.
При включении объекта в классификатор объект не объязан прятать свои свойство.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34546614
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dogen
Но если подходить по-взрослому, то надо давать внедренцам выбирать используемую логику .
Есно, набор показателей, классификаторов и их зависимость - параметры настройки.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34546631
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовКатегория (классификатор) может иметь свои собственные свойства.
При включении объекта в классификатор объект не объязан прятать свои свойство.
1. может
2. обязан: видимый набор свойств объекта зависит от точки зрения на него через определенный классификатор- пример одно юр.лицо и поставщик и покупатель - набор свойств разный
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34546833
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод Сахават ЮсифовКатегория (классификатор) может иметь свои собственные свойства.
При включении объекта в классификатор объект не объязан прятать свои свойство.
1. может
2. обязан: видимый набор свойств объекта зависит от точки зрения на него через определенный классификатор- пример одно юр.лицо и поставщик и покупатель - набор свойств разный

2. может, но не объязан. :) Мне не нравятся жесткие классификаторы. Объекты могут иметь частичную классифицируемость. Ну не хватает там пару свойств или на грани диапозона на пару микрон. :)
Главно сам классификатор (идентификатор и имя) и его свойства отбора (или пожелания классифицирующего)
Например "большие в своем классе", туда попадет и "погрузчик вилочный" и "колесо игрушечного автомобиля".
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34546867
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да и имел ввиду про определение категории, что один так видит, а другой эдак. И правильно, что пользователь должен выбирать что куда относить. Главное тут - в EAV не уехать. Можно еще дать пользователю выбрать какие свойства будут жесткими, а какие - нет, какие признаки можно показывать при смене категории, а какие - нет. Да еще с правами каким пользователям можно видеть старые значения/категории, каким можно их менять и т.д. Не получится ли тут целая отдельная БД, регулирующая этот классификатор?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34546878
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДДа и имел ввиду про определение категории, что один так видит, а другой эдак. И правильно, что пользователь должен выбирать что куда относить. Главное тут - в EAV не уехать. Можно еще дать пользователю выбрать какие свойства будут жесткими, а какие - нет, какие признаки можно показывать при смене категории, а какие - нет. Да еще с правами каким пользователям можно видеть старые значения/категории, каким можно их менять и т.д. Не получится ли тут целая отдельная БД, регулирующая этот классификатор?

А Вы как хотели?

Настраиваемую конкурентоспособную систему на коленках сделать довольно сложно.

А для собственного употребления необходимо найти некий компромисс, выбрать и достаточно гибкое, и достаточно недорогое в разработке схемное решение.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34546928
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эх, такую тему чуть не прошляпил. ;)

> Мне не нравятся жесткие классификаторы. Объекты могут иметь частичную классифицируемость.

И как вы предлагаете с этим бороться?

> Главно сам классификатор (идентификатор и имя) и его свойства отбора (или пожелания классифицирующего)

А какой-нибудь распространенный пример хорошей классификации можете привести? (Предупреждая возможные вопросы: я - не могу).
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34546966
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Эх, такую тему чуть не прошляпил. ;)

> Мне не нравятся жесткие классификаторы. Объекты могут иметь частичную классифицируемость.

И как вы предлагаете с этим бороться?

> Главно сам классификатор (идентификатор и имя) и его свойства отбора (или пожелания классифицирующего)

А какой-нибудь распространенный пример хорошей классификации можете привести? (Предупреждая возможные вопросы: я - не могу).

Типа того. Пропали мои заказчики и все стоит уже месяц. :(
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34547420
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовМне не нравятся жесткие классификаторы. Объекты могут иметь частичную классифицируемость. Ну не хватает там пару свойств или на грани диапозона на пару микрон. :)
Мне тоже. Но не жесткие - это уже что-то с вероятностями. М.б. не обязательные св-ва ?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34547425
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДНе получится ли тут целая отдельная БД, регулирующая этот классификатор?
Именно так - СУБД над СУБД. И без списков (EAV как частный случай) здесь не обойтись.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34547429
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DogenА для собственного употребления необходимо найти некий компромисс, выбрать и достаточно гибкое, и достаточно недорогое в разработке схемное решение.
Для себя надо делать лучше чем для других :)
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34547459
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават, а словами можно сформулировать? На скриншоте я вижу, что одни и те же сущности принадлежат общему [условно] классификатору (в данном случае корневой сущности просто нет) и собраны в группы технологических процессов. Группы - это правильно. А как с собственно классификацией?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34547871
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Сахават, а словами можно сформулировать? На скриншоте я вижу, что одни и те же сущности принадлежат общему [условно] классификатору (в данном случае корневой сущности просто нет) и собраны в группы технологических процессов. Группы - это правильно. А как с собственно классификацией?
Ну, на словах не знаю что получится. :) Слова то мои выходят какие-то непонятные. :)

Давайте напишу, что сделано или хотелось бы.
1. Есть словарь.
2. Есть необъязательные шаблоны (классы) для генерации объектов. При генерации объекта ему приписывается шаблон. Но, объект может не полностью соответствовать шаблону. Класс может быть иерархическим. Объект естественно тоже (но, соответствие не объязательно). Например шаблон может задавать РЦ(Человек, машина, инструмент), а объект РЦ(Человек), но в объект можно включать только те объекты, которые приписаны к соответствующим шаблонам.
3. Есть классификаторы в виде леса. Классификатор может группировать и классификаторы и объекты и вперемежку. При прописании объекта к классификаторы (можно включить через классификатор (добавить объект) или прописать объект (проипасать в классификатор)). Естественно, объекты могут быт включены в разные классификаторы.
4. Объекты сами являются классами(с точки зрения экземплярности)(сущностями), они могут иметь определенные свойства с установленными значениями или быть не инициализированными.
А вот ресурсы(прикладные объекты что ли? :)) уже инициализированы полностью.
Пока столько. Если не туфта , то обсудим дальше.

Сделать так меня заставляет жизнь.
1. Автоконфигурирование (через спецификации и техпроцесс) изделий, услуг. Т.е. Изделие изначально не инициализировано (или неполностью инициализировано). При создании ресурса на базе Изделия не инициализированого, по всей цепочке инициализируются неинициализированные свойства (автоматически по правилам (полное наследование свойств входов или техпроцесса, формула, выбор) ) и это уже УЧЕТНАЯ единица. :)
2. Надо было иметь возможность на процесс в виде ресурсов назначить (или выбрать по совместимости свойств) и одиночный объект, и спецификацию (куда,что,сколько), и группу для множественного выбора, а то и группу групп и т.д.
При назначении можно игнорировать часть свойств объекта (просто не выбрать или удалить). Не инициализированнные свойства считаются совместимыми с любыми значениями ресурса учетного. Инициализированные должны совпасть (или быть приемлимы по условиям (пока их нет)) и т.д.

Не знаю, можно ли понять мой сумбур.

Вобщем похоже на Пролог чем то.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34548354
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> 2. Есть необъязательные шаблоны (классы) для генерации объектов.

Сложновато получается. Предполагается, что начальные шаблоны (по крайней мере частично) заданы для всех объектов? Для шаблонов есть какие-то формальные критерии? Для обработки шаблонов, видимо, есть какие-то правила? Как они описаны? Зашиты в коде или используется какой-то OCL?

> Класс может быть иерархическим.

Иерархия - она с наследованием? Или просто группирующая?

> Классификатор может группировать и классификаторы и объекты

Классификаторы и объекты на уровне структуры данных различаются? Или просто имеют разный набор атрибутов и связей?

> Сделать так меня заставляет жизнь.

Мотивы понятны. На мой взгляд, такой подход будет работать при условии относительно небольшого количества типов объектов. А если их - типов - много? В этом форуме регулярно задают вопросы про универсальные БД, - на самом деле это одна и та же задача. Иметь универсальную классификацию - значит уметь описывать данные любой природы.

> это уже УЧЕТНАЯ единица. :)

Да, дальше уже понятно.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34548837
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> 2. Есть необъязательные шаблоны (классы) для генерации объектов.

Сложновато получается. Предполагается, что начальные шаблоны (по крайней мере частично) заданы для всех объектов? Для шаблонов есть какие-то формальные критерии? Для обработки шаблонов, видимо, есть какие-то правила? Как они описаны? Зашиты в коде или используется какой-то OCL?


Шаблоны нужны, что бы помочь пользователью (программисту -мне в данном случае) создать базовые сущности (типа - машины, люди и т.д.) (первичняя классификация) в заданной предметной области. На самом деле это просто что бы не выбирать из сотен свойств в словаре при генерации объекта(класса). Но это только для не вложенных шаблонов. Если шаблон иерархический, то объект может состоять только из объектов в приписанных к шаблонам в иерархии.
Сначала я наследовал, но оказалось, что это не очень то и надо.
Сделал агрегацию. Оказалось лучше и проще. (пока, на данном этапе)
Никаких критериев и OCL(может потом, если будет нужда).
При агрегации удается сохранить свойства всех включенных и при этом задать собственные свойства для агрегата.

guest_20040621
> Класс может быть иерархическим.

Иерархия - она с наследованием? Или просто группирующая?


При агрегации удается сохранить свойства всех включенных и при этом задать собственные свойства для агрегата.

guest_20040621
> Классификатор может группировать и классификаторы и объекты

Классификаторы и объекты на уровне структуры данных различаются? Или просто имеют разный набор атрибутов и связей?


Практически по виду ничем не отличаются, только классификаторы не учетные единицы. :)
А иерархические объекты могут быть учетной единицей. Чайный набор(чашка, блюдце).

> Сделать так меня заставляет жизнь.

guest_20040621
Мотивы понятны. На мой взгляд, такой подход будет работать при условии относительно небольшого количества типов объектов. А если их - типов - много? В этом форуме регулярно задают вопросы про универсальные БД, - на самом деле это одна и та же задача. Иметь универсальную классификацию - значит уметь описывать данные любой природы.


Интересная вещь. Когда думаешь вообще о разнообразии, то можешь сойти с ума. А как только спускаешь на уровень предприятия, то все приходит в норму.
У одних такой набор классов, у других другой. Но их мало! Завод погрузчиков выпускает погрузчики и мелоч 10 наименований (из тех же деталей и материалов обычно + покупные), фабрика дверей - двери (отличаются материалами и т.д.).
Есть классы квазиинварианты - люди, цеха, машины, процессы... их по хорошему надо вводить полностью по части инвариантных свойств, а остальные вводить по мере необходимости как я пытаюсь.
Есть продукты, услуги - сильно вариабельны, кроем имени нет ничего общего. Эти вещи пытаюсь вывести в настройки и связываю (распознаю :)) всех их с помощью процесса.
На входах и выходах нормативного процесса может быть что угодно (не учетная не инициализированная муть).
На входе актуального процесса только учетная единица, полностью инициализированная.

Т.е. если пользоваться РБД, то только часть вариабельная выделяются в ЕАV или XML.
А если другие типы БД, то можно так и оставить все.

В принципе, эти настройки я собираюсь в конце закрыть для пользователя клиента по части шаблонов, оставив только классификатор.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34549233
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все логично.

> На входах и выходах нормативного процесса может быть что угодно (не учетная не инициализированная муть).

Сначала не понял смысл фразы. Потом вчитался. ;) Нечего возразить.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34549618
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Dogen
>А Вы как хотели?
>Настраиваемую конкурентоспособную систему на коленках сделать довольно сложно.
>А для собственного употребления необходимо найти некий компромисс, выбрать и достаточно гибкое, и достаточно недорогое в разработке схемное решение.

Да уж теперь не столь важно - что я хочу. Главное, чтобы нормально получилось. О конкурентоспособной системе я и не мечтаю – хоть бы для внутреннего пользования подошла. Компромисс, боюсь, найдется, когда будет (если будет) все готово. О дороговизне речи нет – см. мой пост от 22 мая ("Сам себе постановщик задачи, проектировщик, кодер, тестировщик и т.д."). Никто меня не торопит, когда и как сделаю, тогда и так будет. Собственно, даже если вообще ничего не получится – никто ругаться не станет. В успехе больше всех заинтересован я, т.к. возиться с кучей бумаг надоело смертельно.

Но теперь к делу. Итак, подведем краткие итоги:
1. Свойства товара связываем с категориями.
2. Категории настраивает пользователь.
3. Храним историю наборов и выводим актуальные сведения.
4. Пользователям даем различные права на просмотр, изменение наборов, категорий и свойств.
Я так понимаю реализация этих положений – оптимальный путь? Ничего я не упустил? Если что – поправьте.

2 guest_20040621
Наверное, нельзя привести пример хорошей классификации в принципе. Потому что любая классификация основывается на каких-то признаках, которые классифицирующий считает главными. Поскольку выбор этих признаков субъективен, то кому-то он покажется оправданным, а кому-то – нет. Посему Ваш вопрос – риторический.

Сахавату Юсифову пока не отвечаю - мозгов пока не хватает понять то, что он изложил.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34550782
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КД
Но теперь к делу. Итак, подведем краткие итоги:
1. Свойства товара связываем с категориями.
2. Категории настраивает пользователь.
3. Храним историю наборов и выводим актуальные сведения.
4. Пользователям даем различные права на просмотр, изменение наборов, категорий и свойств.
Я так понимаю реализация этих положений – оптимальный путь? Ничего я не упустил? Если что – поправьте.


1. Нет. Категория выступает в роли шаблона набора свойств товара. Она может меняться (в части содержания набора свойств). Что при этом делать с товаром - решать надо (я бы добавлял новые свойства в товары; возможно, только при необходимости).

2. Не пользователь, а АБД. Пользователю ума не хватит, он породит нереальный противоречивый бардак.

3. Этого не нужно, если помечать признаки/свойства/атрибуты товаров как действующие или архивные. Хранить нужно историю изменений (если это нужно в Вашей архитектуре БД, для печати старых накладных и т.п.)

4. Это общее место.

Повторюсь, оптимальный путь вне контекста здесь не найдется
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34551427
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Наверное, нельзя привести пример хорошей классификации в принципе.

В принципе - можно. Но опять же ключевым словом будет контекст.

> Посему Ваш вопрос – риторический.

Отчасти.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34552719
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Dogen
Согласен со всеми поправками, с их учетом я примерно начал намечать оптимальный путь.
"Вне контекста" - т.е. надо обрисовать задачу? Пожалуйста: есть химические реактивы (много и разные). И каждый нормируется по куче показателей, причем нормативы м.б. и просто число, и диапазон и что-н. еще, чего я пока не знаю, т.к. за все реактивы поручиться не могу по каким показателям еще они нормируются. Причем некоторыми показателями мы пользуемся, а некоторыми - нет (но, м.б. ПОКА нет). Мера соответствия (если можно так выразиться) этим нормативам тоже может выглядеть как число, слово, диапазон, что-н. еще. Есть показатели, которые почти у всех реактивов присутствуют, есть те, которые не у всех. Какие из них будут нужны - хрен его знает, но раз в паспортах приводят, значит, кому-н. могут понадобиться. Есть показатели обязательные, есть нет. Кстати, на одни и те же реактивы разные фирмы могут давать разный набор показателей. И еще раньше почти на все реактивы эти наборы были меньше, обычно просто писали - соответствует ГОСТу ..., а теперь на страницу список. Была мысль сделать маленький такой EAV'чик именно для нормативов и мер соответствия, т.к. создать жесткую структуру не знаю как.

2 guest_20040621
Боюсь, что даже в определенном контексте не всех устроит предложенная кем-л. классификация. Всегда найдется guest_20040621 (не обижайтесь - Вы зачастую правы), который придет и скажет: "нет, нет, все не так". А если он так не скажет, то кто-н. другой. Ну не может ВСЕХ устроить субъективный выбор, разве что классификации принимать большинством голосов (а, кстати, так оно часто и бывает).
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34552828
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Боюсь, что даже в определенном контексте не всех устроит предложенная кем-л. классификация.

Вы не поняли. Контекст - это не то, чего хочет левая нога, а вполне себе конкретный способ реализации структуры данных. Наиболее близкая аналогия - namespace.

> не может ВСЕХ устроить субъективный выбор

На самом деле может, но для данного обсуждения это не принципиально.

> кстати, так оно часто и бывает

Да. И это плохо.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34554764
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Боюсь, что даже в определенном контексте не всех устроит предложенная кем-л. классификация.

Вы не поняли. Контекст - это не то, чего хочет левая нога, а вполне себе конкретный способ реализации структуры данных. Наиболее близкая аналогия - namespace.Теперь я уже не понял. При чем тут способ реализации структуры данных? Мы же не подразумеваем проектирование в отрыве от типов данных СУБД (ну хотя бы в сравнительно идеальном варианте).

guest_20040621> не может ВСЕХ устроить субъективный выбор

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

guest_20040621> кстати, так оно часто и бывает

Да. И это плохо.А не с теми совещаются. Сюда надо, сюда
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34554883
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Мы же не подразумеваем проектирование в отрыве от типов данных СУБД

Не подразумеваем. Я вот о чем: для xml мы можем написать xmlns:name1="URI1", xmlns:name2="URI2" и использовать элементы двух пространств имен. Для реляционных СУБД столь же простого способа объявления пространств имен не существует. Поэтому пространства имен - или контекст - описываются обычным образом.

> чем подробнее описывать в данном случае контекст задачи, тем в большей степени решение всех устроит

Боюсь, все не так просто. Самый простой пример: товары и услуги. Их легко классифицировать и по ОКВЭД, и по ОКПО. Оба классификатора достаточно подробны. Но для практического применения оба крайне не удобны (за пределами, разумеется ВЭД и статистического анализа соответственно).
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34554928
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621
Боюсь, все не так просто. Самый простой пример: товары и услуги. Их легко классифицировать и по ОКВЭД, и по ОКПО. Оба классификатора достаточно подробны. Но для практического применения оба крайне не удобны (за пределами, разумеется ВЭД и статистического анализа соответственно).
Весь базар ведь и идет о практически применимом классификаторе? Я к тому, что автору вместо обкладывания себя на километр в каждую сторону соломой - где бы не упасть - стоит прорисовать ER-диаграмму того, с чем собирается работать, и поразмышлять над алгоритмами обработки данных в конкретной системе, глядишь, и понятно станет, какие сущности и атрибуты оставлять.

Во-вторых, прилично спроектированная структура данных расширяется без особого геморроя, ПМСМ.

А коды ОКВЭД и ОКПО нужны для печати в документах :)
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34554981
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Весь базар ведь и идет о практически применимом классификаторе?

Да.

> понятно станет, какие сущности и атрибуты оставлять

В том-то и фишка, что выбирать не обязательно, а можно сказать: вот сейчас я нафигачу этот классификатор, а потом добавлю другие. И по мере необходимости смогу использовать любой. Ключевое слово все то же - контекст.

> прилично спроектированная структура данных расширяется без особого геморроя

Да. Только где ж Вы видели прилично спроектированные структуры данных? ;) Вопрос-то на самом деле политический: проектирование баз данных - дорогое удовольствие; проще сделать быстро, дешево и с 80 процентами необходимого функционала, чем платить в десять раз больше за оставшиеся 20 процентов.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34555015
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621

> понятно станет, какие сущности и атрибуты оставлять

В том-то и фишка, что выбирать не обязательно, а можно сказать: вот сейчас я нафигачу этот классификатор, а потом добавлю другие. И по мере необходимости смогу использовать любой. Ключевое слово все то же - контекст.

Ну подобное как раз укладывается в моё представление о прилично спроектированной структуре данных. Есть тонкость - кто будет добавлять классификаторы. Или их добавлять в структуру БД, и это будет делать разработчик, или их добавлять уровнем выше, и это будет делать АБД. Есть, конечно, гибридный вариант, но я не считаю разумным программно генерить структуры БД по ходу эксплуатации системы.

guest_20040621> прилично спроектированная структура данных расширяется без особого геморроя

Да. Только где ж Вы видели прилично спроектированные структуры данных? ;) Вопрос-то на самом деле политический: проектирование баз данных - дорогое удовольствие; проще сделать быстро, дешево и с 80 процентами необходимого функционала, чем платить в десять раз больше за оставшиеся 20 процентов.Это в некотором роде демагогия. Создание ПО - процесс настолько пожирающий время и ресурсы, что делать надо только то, без чего нельзя обойтись (это тоже демагогия )
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34555072
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> укладывается в моё представление о прилично спроектированной структуре данных

Консенсус.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34556539
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я недостаточно подробно обрисовал задачу?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34556564
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Я недостаточно подробно обрисовал задачу?

А разве остались вопросы, на которые Вы не получили ответы?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34557430
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДЯ недостаточно подробно обрисовал задачу?

Задачу описали - вполне подробно.

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

Далее обсуждались возможности по упрощению универсального решения задачи о построении классификатора товаров.

И говорилось о том, что для рационального построения этого самого классификатора надо подробнее описать предметную область, бизнес-процесс и тому подобное.

Is it clear?
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34562532
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 guest_20040621
Да нет, кажется, получил (см. посты 24-25 мая). Просто Dogen сказал, что вне контекста ничего лучшего предложить нельзя, а когда я обрисовал контекст, заявил, что предложенный мной вариант плох и отослал меня к учебникам. А я-то вообще никакого своего варианта не предлагал. Я только спросил, с чем связывать показатели товаров (реактивов) – с товарами или с наборами. Тут на форуме этих "своих" вариантов – пруд пруди, осталось только выбрать наиболее подходящий.

2 Dogen
В продолжение ответа guest_20040621 замечу, что в дискуссии о построении универсального классификатора товаров я участия не принимал, разве что заметил, что это в принципе невозможно. Посему надо отдать этот вопрос на откуп пользователю (в Вашем варианте – АБД). Пусть классифицируют как хотят. Боюсь, что очень подробно предметную область я расписать не смогу, да это и не нужно. Вы меня пнули, кажется, в правильном направлении.
А первоисточники я, конечно, стараюсь читать.
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34562752
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернемся к конструктиву.

КД Я только спросил, с чем связывать показатели товаров (реактивов) – с товарами или с наборами.С товарами связывать "объект типа Показатель товара", минимальный набор объектов-Показателей задается объединением всех категорий товара.

КДв дискуссии о построении универсального классификатора товаров я участия не принимал, разве что заметил, что это в принципе невозможновозможно, в том числе и без АБД (но по ходу наполнения БД данными придется описывать вновь появляющиеся типы показателей)
...
Рейтинг: 0 / 0
база товаров - у кого как и что посоветуете
    #34565797
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Dogen
Согласен. Теперь буду пробовать реализовать. Всем спасибо!
...
Рейтинг: 0 / 0
88 сообщений из 88, показаны все 4 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / база товаров - у кого как и что посоветуете
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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