powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / проектирование классификатора товаров
20 сообщений из 20, страница 1 из 1
проектирование классификатора товаров
    #38885537
rawman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, помогите советом плиз, опыта проектирования мало, сломал себе уже весь мозг.

Вкратце так:

3 основные таблицы
Таблица 1 - список наименований товаров, к примеру молоко, кефир, йогурт и т.д. [связь с Т2 один ко многим]
Таблица 2 - товары с формой выпуска, к примеру кефир 1% в тетрапаке, кефир 3% в пакете и т.д. [связь с Т3 один ко многим]
Таблица 3 - физически существующие в природе товары с их производителями. (производители в отдельной таблице)

идем дальше
в каждой таблице товары разбиваются на группы, классификатор организован в виде отдельной таблицы,
для удобства в виде дерева (id, parent, name) и вспомогательной таблице для организации связей много ко многим.

и вот тут 2 принципиальных вопроса:
1. имеет смысл городить огород из 3-х таблиц ?
или проще запихать все в одну таблицу, но с бОльшим количеством полей,
ну и соответственно будем много повторяющихся значений ?

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

заранее благодарен за помощь !!!
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38885578
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос от печки:
кому-то интересно будет анализировать сколько кефира 3% продалось? или просто тупо за оборот "общей молочки" будут интересоваться?
вот тут и выбор будет
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38885666
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лучший вопрос на sql.ru за последние ~пять лет, спасибо.

> сломал себе уже весь мозг

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

> товары с формой выпуска

Играют роль и другие факторы. Продукты, выпущенные по ГОСТ и ТУ - разные продукты, даже если у них совпадают названия, технологические характеристики и фасовка. В чём плюсы детализации структуры: вы можете использовать аналитику. Например, корректно посчитать инфляцию по разным продуктам или группам продуктов. Например, оценить влияние изменение цены базового продукта на цены производных продуктов. Например, оценить влияние законодательных инициатив на цены. В чём минусы: трудоёмкость поддержки базы данных. То, что продаётся в магазинах под названием "молоко" в подавляющем большинстве случаев должно в соответствии с российским законодательством называться "молочный напиток". Т. е. дополнительно к основной задаче вы получаете достаточно объёмную задачу сопровождения, не говоря о том, что вам придётся использовать виртуальные название и формально корректные одновременно.

Другими словами, вам нужно сначала ответить себе на вопрос, какую именно задачу вы решаете. Здесь дело даже не в ТЗ, а в общей идеологии продукта.
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38885714
rawman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
понятно что надо начинать с постановки задачи, требованиям к конечному продукту и т.д.
частично это есть, но в достаточно общих формулировках и что-то мне подсказывает
что конечный результат может сильно отличаться от того что сейчас "хочется"

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

:) Не думаю. В данном случае для вас существенно то, что сложность хорошего решения будет на порядки выше того, что есть на рынке. Я привёл тривиальный фрагмент частной подзадачи, - таких подзадач будет много. Очень много. Тем больше, чем большее количество рынков вы будете рассматривать.

> думаю как бы переделывать потом по минимуму

Зафиксируйте максимально детально требования к идентификации людей, предприятий и продуктов. Это позволит избежать ненужной работы.

Сложно давать рекомендации, не зная вашей квалификации, ваших целей и ваших задач. Любая база данных - компромисс между тупоголовостью заказчика, бюджетом, сроками и пр. Куча ограничений.
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38885716
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мой взгляд я бы сделал одну таблицу (Таблица 3) а таблицы 1 и 2 это просто справочники (наименований товаров и форм выпуска, причем не связанных между собой)
rawman для удобства в виде дерева (id, parent, name)А вот это не стоит. Такая структура делает возможным бесконечное добавление уровней, требует поддержки иерархических запросов для СУБД, сами запросы труднее для восприятия, но при количестве уровней больше пяти-семи уже неудобно пользоваться. Делайте нормальные статические категории, подкатегории, подкатегории второго уровня и т.д.

Второй принципиальный вопрос мне непонятен совсем.
У вас разные наборы полей для разных товаров? Ищите по форуму по слову наследование - есть реализации с одной, двумя и тремя таблицами. У каждой есть свои достоинства и недостатки.
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38885819
Ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ы
Гость
rawman3 основные таблицы
Таблица 1 - список наименований товаров, к примеру молоко, кефир, йогурт и т.д. [связь с Т2 один ко многим]
Таблица 2 - товары с формой выпуска, к примеру кефир 1% в тетрапаке, кефир 3% в пакете и т.д. [связь с Т3 один ко многим]
Таблица 3 - физически существующие в природе товары с их производителями. (производители в отдельной таблице)

1) Товары — это только «физически существующие в природе товары» (табл. 3), только у них и могут быть производитель, «форма выпуска» и т.п. В зависимости от задачи «жирность» и подобные свойства могут быть отнесены как сюда, так и к категории в целом.
2) «Список наименований товаров, к примеру молоко, кефир, йогурт» (табл. 1) — это кусок классификатора, т.к. «молоко», «кефир» и «йогурт» суть названия групп/категорий внутри «молочной продукции». Табл. 2 в таком виде не нужна вообще (иначе получите «Рубашка / муж. хлопок Турция Синяя / р. 52» как здесь 16717416 ).
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38886138
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rawman1. имеет смысл городить огород из 3-х таблиц ?
или проще запихать все в одну таблицу, но с бОльшим количеством полей,
ну и соответственно будем много повторяющихся значений ?

Я за 1й вариант. Потом выкладывайте сюда, посмотрим что получилось
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38886174
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rawman,

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

проведите GAP-анализ. Возможно, возникнут такие понятия как партии, упаковки, комплекты, производители и т.д.
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38887418
rawman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем спасибо за помощь.

кому интересно, посмотрите что получилось, покритикуйте....
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38888779
ams_ar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rawman,

Добрый день.

Вообще задача классическая для DWH розничной сети :) но не буду снобом.

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

Вторым делом необходимо определиться могут ли свойства меняться во времени, допустим один и тот же товар могли поставлять несколько разных поставщиков. Или производитель поменял объем с 1 литра молока на 0,9. Если свойства будет меняться и вы не хотите каждый раз генерить новый ключ для товара (партионный учет) то необходимо вводить понятие периода действия (с - по).
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38888797
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ams_ar Или производитель поменял объем с 1 литра молока на 0,9. Если свойства будет меняться и вы не хотите каждый раз генерить новый ключ для товара (партионный учет) то необходимо вводить понятие периода действия (с - по).

А придется! (с) :)

Если Вы закупили 1000 пакетов молока по 1 литру, продали 700 и 300 осталось на складе, а на следующий день производитель привозит уже пакеты по 0.9 - непонятно как Вам помогут периоды действия.
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38888808
ams_ar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскинams_ar Или производитель поменял объем с 1 литра молока на 0,9. Если свойства будет меняться и вы не хотите каждый раз генерить новый ключ для товара (партионный учет) то необходимо вводить понятие периода действия (с - по).

А придется! (с) :)

Если Вы закупили 1000 пакетов молока по 1 литру, продали 700 и 300 осталось на складе, а на следующий день производитель привозит уже пакеты по 0.9 - непонятно как Вам помогут периоды действия.


согласен.
можно формировать ключ преломления свойства товара (item_dtl = item||dt_from||dt_to) и рядом держать родительское свойство товара item.

В итоге должно получиться примерно следующее:
Item - товарный справочник с дочерним и родительским ключом (+ описание и свойства не зависящие от поставщика)
Supplier - справочник поставщиков
Item_Supplier - справочник товаров поставщика (item_dtl, supp_id, + свойства жирность, количество в упаковке и т.д)
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38889160
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
производитель поменял объем с 1 литра молока на 0,9Хотите вы или нет, но это уже другой товар .
Тот же самый товар, это когда слегка меняется этикетка и/или новый штрихкод. Без изменения объема, названия и свойств упаковки.

Даже одинаковый кетчуп дой-пак с дозатором (дп/д) и без дозатора(дп/бд) это уже разные товары. Увы. У них разный спрос и разная цена.

Даже сырок "Дружба" одного и того же завода может быть разным товаром(!), т.к. этикетки разные (а-ля СССР и современная) и спрос на них совершенно разный . Таковы предпочтения покупателя и Вы с этим ничего не поделаете.

Аналогично акция с подарочным "прицепом" на скотче. Это может быть другой товар. К тому же требующий отдельной маркировки, чтоб не путать на кассе.
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38889231
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVпроизводитель поменял объем с 1 литра молока на 0,9Хотите вы или нет, но это уже другой товар .
Тот же самый товар, это когда слегка меняется этикетка и/или новый штрихкод.Не всегда так. Бывает, что объем меняется при полном сохранении всего остального, в т.ч. штрихкода. А по документам товар неотличим от предыдущей поставки. И об изменении узнаешь не от поставщика, а только когда новый товар на полках расставлять начинаешь. Причем местный менеджер поставщика может даже не знать об этом.
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38889634
rawman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в представленной схеме так называемое ядро справочников, движение товара и партии это следующий шаг.

авторДаже сырок "Дружба" одного и того же завода может быть разным товаром(!), т.к. этикетки разные (а-ля СССР и современная) и спрос на них совершенно разный. Таковы предпочтения покупателя и Вы с этим ничего не поделаете.

это тоже предусматривает текущая структура.
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38889636
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftНе всегда так. Бывает, что объем меняется при полном сохранении всего остального, в т.ч. штрихкода. А по документам товар неотличим от предыдущей поставки. И об изменении узнаешь не от поставщика, а только когда новый товар на полках расставлять начинаешь. Причем местный менеджер поставщика может даже не знать об этом.Бывает и такое, хотя это лютая дикость. :)
Если остатки пересекаются, т.е. в наличии оба вида, то выход один - маркировать одну из карточек. Обычно с меньшим остатком.
В других случаях (остатки не пересеклись) можно просто переименовать карточку. :)
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38889655
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rawmanэто тоже предусматривает текущая структура.Структура в стартовом топике - мертворожденная. Долго рассказывать, почему.
Ее трудно поддерживать актуальной и трудно вести отчетность и аналитику.
Имейте ввиду, что карточек будет неск. сотен тыс.
Малейшее усложнение сделает работу аналитиков и отдела закупок настоящим адом.

А еще Вам стоит открыть для себя производство: пекарня, салаты, мясо и пр.
Во де будет веселуха. :)
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38889853
rawman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSV,

авторСтруктура в стартовом топике - мертворожденная.

не соглашусь про аналитиков, у них как раз проблем не будет. действительно будет дополнительная трудоемкость при заведении новых товаров, но зато будет порядок. примерная оценка максимального кол-ва товаров составляет 500тыс.
к примеру сейчас работает система в которой все проще и это породило кучу других проблем как раз для аналитиков (куча задвоенных позиций, проблема с производителями, отдел закупок просто умирает и т.д.), нанятые на аутсорсе операторы решают частично проблему, но не на 100%.
...
Рейтинг: 0 / 0
проектирование классификатора товаров
    #38890304
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкуча задвоенных позиций, проблема с производителями, отдел закупок просто умираетНиодна система не устранит эту проблему, т.к. это на 100% человеческий фактор. Всегда есть возможность накосячить/натупить/поломать.

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

зы: принимал косвенное участие в сведении в единую базу примерно 12 магазинов. В сумме ок. 400тыс. артикулов. В итоге получилось ок. 60 тыс.
Огромная работа целого отдела в теч. неск. месяцев (работа магазинов не прекращалась).

Самое главное - наладить максимально строгий, но при этом простой для понимания, формализованный процесс.
Программки и таблички - вторичны.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / проектирование классификатора товаров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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