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

шаг1. создаем талицу товаров и замыкаем ее на себя
получаем иерархию, для простоты и скорости делаем денормализацию, типа
уровень, терминальность.
МИНУСЫ:
1. при появлении нового товара с несколько отличающимися характеристиками требуется новая спецификация, типа появились болты с резьбой 5 мм вместо 4 мм хотя и те и те можно использовать при сборке данного товара.
2. разные серии товара могут отличаться очень незначительно с точки зрения спецификации, а при таком подходе нужно создовать новую спецификациюю

шаг2.создаем вторую таблицу для себя я ее называю "шаблон" это условное понятие сборочной единицы котороя связана один ко многим с товаром
можно вроде бы ее замкнуть на себя, а вроде напрашивается отношения вывести в отдельную таблицу ОтношениеШаблон типа ШаблонРодитель, ШаблонПотомок, получаем отношение таблицы шаблон многие ко многим со мой с собой, и вроде бы счастье, но при таком подходе иерархию я блогополучно потерял, а ведь по жизни она есть, один шабон конечно можно использовать в разных спецификациях но ведь внутри одного изделя иерархия есть.

шаг3 вроде бы напрашивается еще одна таблица назовем ее "спецификация"
ее делаем иерархией замыкая на себя делаем связ один "шаблон" связан со многими спецификациями, и одна "спецификация" связана со многими "товарами" и одновременно одни "шаблон" связан со многими ""товарами"

на этом пока мои мысли иссякли
Буду очень признателен за критику, ссылки, и свои предложения
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32916665
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h2ospbПытаюсь заново переосмыслить подход к описанию комплектации изделий, вроде бы тема достаточно избитая и тем не менее.
Это твое описание проблемы... а остальное - твое решение...
Конечно хорошо, что сам думаешь... но разве нельзя чуть-чуть побольше о самой проблеме... что нужно получить...

1. при появлении нового товара с несколько отличающимися характеристиками требуется новая спецификация, типа появились болты с резьбой 5 мм вместо 4 мм хотя и те и те можно использовать при сборке данного товара.
Если это SQL сервер, то копирование состава можно выполнить:
EXECUTE PROCEDURE... (если это не MySQL, Access, DBF и прочее...)
На сегодя у меня все... пока...
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32916983
bibikoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне кажется нужно или копать в сторону создания отдельной сущности ВерсияСпецификации

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

Работаю на MS SQL 2000= решаемая задача, описание производства и склада,
суть производства в основном сборка из готовых комплектующих, достаточно широкого набора продукции, многие блоки в разных изделиях повторяются,
вопрос идентификации конкретного изделия не стоит, Очень не хочется с одной стороны множить спецификации до бескончности, перекладывая груз на пользователя и раздувать базу, с другой оставить структуру базы типа многие ко многим и все решать за счет логики приложения усложняя ее до бесконечности, хочется максимально использовать структуру базы.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32917952
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько уточнений:
создав таблицу типа "ШаблонРодитель", "ШаблонПотомок" отдельно от таблицы "Шаблон", иерархия конечно не потерялась, и вобщемто вроде бы вся необходимая информация для построения дерева (спецификации) остается, не понятно только как денормализовать эту таблицу чтобы с одной сторны упростить алгоритм, с другой повысить скорость, с третьей воспользоваться существующими алгоритмами для обработки дерева поl SQK. ведь после создания сама спецификация остается достаточно постоянной, получается что уровень стороки "ШаблонРодитель"-"ШаблонПотомок" есть величина переменная и является функцией от спецификации, Второй момент который мне кажется тоже достаточно серьезным сама таблица отношений позволяет задать любое сочетание между "ШаблонРодитель" - "ШаблонПотомок" а это мяго выражаясь не совсем так не мешало бы на уровне структуры базы наложить ограничение, что внутри одной спецификации должно быть дерево а не юбой произвольный набор. Что-то ни как не могу понять нужно ли вводить еще дополниетльную сущность типа "Спецификация" или "МестоШаблонаВСпецификации" или как то по другому????
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32918405
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h2ospb...решаемая задача, описание производства и склада, суть производства в основном сборка из готовых комплектующих, достаточно широкого набора продукции, многие блоки в разных изделиях повторяются, вопрос идентификации конкретного изделия не стоит...
Если я правильно понял, то состав продукции нужен для учета расхода комплектующих на складе…

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

Видно мало кого интересует эта проблема… (судя по бурному обсуждению...)
Могу предложить следующее решение:

Я запутался в том, что ты называешь спецификацией , товаром и шаблоном
По-моему плясать надо не от товара, а от комплектующих и изделий…

Они должны быть в одной таблице “ изделия ”…
Другая – “ спецификация ” для связи изделий с комплектующими…
В том числе в одно изделие могут входить и другие… (как в прочем и сборочные единицы, если нужно, у которых будет свой состав…)

Таблицу “ товары ” лучше сделать отдельно, а то каша получится…
Для нее – “ шаблон ” для связи товаров с изделиями и комплектующими…
(без вложенностей шаблон на шаблон…), а состав получим по спецификациям…

А теперь о вариантах для товаров, типа разные ручки (деревянная и пластмассовая и прочее…)
Создаем “ варианты ” для связи позиций спецификации с товарами…
В этом случае, в спецификации на изделие будет две ручки (одна с признаком типовой), а в вариантах указано, для какого товара…
(комплектующие без варианта – общие и включаются без учета товара…)


Денормализация хороша если жестко задан уровень вложенности…
Типа: товар->изделие->комплектующие… а иначе…

Я состав получаю селектом из процедуры…
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32919027
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olol!
Они должны быть в одной таблице “изделия”…
Другая – “спецификация” для связи изделий с комплектующими…

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


P/S спасибо за участие
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32919094
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делал примерно как у olol (насколько я понял).
2 таблицы (основные, остальное специфика):

Детали (просто банк деталей/узлов, но с деревом)
Id
Parent_Id
Name
Всяко разно

Спецификация
Id
Parent_id
Детали_Id
Количество
Всяко разно

Была возможность копирования из Деталей в Спец. ветками и кустами. Дерево в Деталях и служило неким шаблоном. Там были только уникальные детали.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32919911
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h2ospb
Если не сложно сколько таблиц и с какими связим ты используешь сейчас у себя...

Таблица “ изделия ” включает в себя изделия , сборочные единицы и детали с соответствующими признаками. Разделять их не имеет смысла, поскольку они имеют сходную структуру (кроме мелочи). Да и одно изделие может входить в другое...
Делать ее сразу с деревом - то же... поскольку все позиции уникальны, а входить они могут многократно и на разных уровнях в различные изделия и узлы...

Таблица “ спецификация ” изделие->изделия...
Уровень вложенности - не ограничен, реально было до девяти, сейчас не знаю...
В рекурсивной процедуре у IB/FB есть ограничение не более тысячи циклов, но мне это не грозит... :)

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

Таблица “ товары ” - то что поставляется (идет на продажу)...
В названии отражается его особенность (исполнение,состав или цвет...)
типа "Набор инструментов N-1" состоящий из нескольких изделий (молоток, отвертка... винтики, гаечки... упаковка...) Это уже для сбыта...

Таблица “ шаблон ” товары->изделия... (состав товара)
Здесь уже без циклов... (а то шаблон на шаблон и концов не найдеш).
Да и не нужны здесь циклы... состав берется по спецификации на изделия...
А при необходимости, всегда можно скопировать шаблон с другого товара...

Таблица “ варианты ” спецификация->товары...
Связи задаются для тех позиций которые зависят от товара...
- Конструктор заносит в спецификацию все варианты ручек, поставив признак основной/дополнительный... (только одна будет типовой...)
- Сбыт для нужного варианта указывает товар, где она используется...
Позиции без признака - для любого товара...

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

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

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

3. создаем таб отношений для шаблонов
--ШаблонРодитель
--ШаблонПотомок

4."Спецификация" это результат селекта



у Сереги и olol как я понял несколько по другому

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

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




Сейчас мне кажется интересным следующий вариант в дополнениие к тому, что я писал раньше добавить следующее табл "товар"
разделить на следующие "БазовыйТовар", "ТипТовар", "ЗначениеТипа", Табл "Товар" будет выглядеть так
--КодБазовыйТовар
--КодТипТовар
--КодЗначениеТипа
(эти три строки является составным ключом, может даже два типа сделать?)

далее с "шаблоном" можно связать или "БазовыйТовар" или "Товар",
а может объеденить "БазовыйТовар" и "Шаблон"

когда будет формироваться накладная, должен задаваться базовыйтовар,
типтовара, значениетипа Например, БотинокМужской, Цвет, Черный
(конечно должны быть какие то значениея по умолчанию , и нулевые значения
"БазовыйТовар" и "Шаблон" можно и нужно ли объеденять я пока не розбоался


Второй момент после создания таблицы отношений для "Шаблона" мне кажется будет любопытно попробовать создать отделбную сущность "Дерево"она будет денормализована, и вней хранить образцы "Деревьев" типа
--кодДерева
--родитель
--Потомок
--уровень
--терминальность
--номер ??


и усановить связь одни "шаблон" ко многим "Деревьям" или с узлом дерева,
выделив может его тоже в отдельную таблу

или как то так пока это не решения а направление для мысли
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32923300
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h2ospbСерега!
твой вариант для меня остался загадкой вроде я его и так повертел и эдак все равно не понял
Бывает.

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

h2ospbВо вторых если под "Деталью" ты пониаешь то что я для себя назвал "шаблоном" а под "спецификацией" --"товар" ???
то тоже что то странно кол-во поидее нужно указывать в "Детали" тогда или ты просто опустил таблу что я на зываю "товаром"
"Шаблоном" я обозвал именно соотношения деталей, их иерархию. Из предыдущего описания видно, что базовая модель по структуре будет напоминать любую другую (или я не понял твоего понятия "шаблон"). Количество есть и в Деталях и в Спецификации. Но оно может быть разным. Вдруг кто сделает модель с двумя карбюраторами или с 11 дверями. 8-) Количество в Деталях в принципе - справочное, и ни на что не влияет. Считается по Спецификации .

h2ospbЕсли не сложно в чем фишка когда ты связываешь одно дерево с другим отношением один ко многим.
А я их не связываю. Я на основе первого мышкой строю второе.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32923323
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h2ospb...задумку этой таблицы я не смог понять, таблица варианты мне как то тоже не совсем понятна...
Вот уж действительно: чужая душа - Потёмкин...
Я тоже только сейчас посек, что у тебя как называется... правда в последний твой вариант не въехал... (насколько я понял - это еще только наброски)...

Мои таблицы ты понял правильно (кроме Вариантов )...
А теперь как это работает... по моим названиям таблиц... если их разъединить...

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

Сбыт заносит таблицы Товар и Шаблон...
У них свои наименования товаров (типа: Вилы садовые, а не изделие И-117)...
А в шаблоне указывается связь с конструкторским изделием...
В случае "Набор инструментов" - с несколькими...
В случае "Рем.комплект" - набор узлов и деталей...

А теперь таблица Варианты ... это связь: позиция спецификации->товар.
Сбыт заносит принадлежность "Ручек" товарам...
основная - одному, дополнительная - другому... (или другим).

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


А задачи у нас разные... Я занимаюсь не складом, а расходом материалов...
По плановому количеству производства товаров и раскрутки:
Товар->Шаблон->Спецификация->Изделие
формируется количественный выпуск всех состовляющих...
А по их нормам расхода материалов формируются лимиты для цехов...

Ну пока !!! до понедельника...
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32923764
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я их не связываю. Я на основе первого мышкой строю второе.

тогда понятно


В таблице Детали находятся только уникальные детали у которых не может быть разныз родителей.

это теперь тоже понятно
но ведь хочется чегото красивого и вечного (шутка)
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32925273
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот... в пятницу ответ Сереги прозевал...
А я их не связываю. Я на основе первого мышкой строю второе.
Лично мне это не подходит... У меня конструктора и сбыт - это разные люди...
А еще есть плановики и номировщики материалов...
Каждый заносит только свое... а все изменения автоматически отражаются на общем итоге...

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

В этом случае сдесь же будут и товары, а изделия - выступать в качестве базовых шаблонов...
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32925383
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olol А я их не связываю. Я на основе первого мышкой строю второе.
Лично мне это не подходит... У меня конструктора и сбыт - это разные люди...
А еще есть плановики и номировщики материалов...
Каждый заносит только свое... а все изменения автоматически отражаются на общем итоге...
У меня там еще и смайлик стоял.
Да и в структуре моей вроде видно, что Спецификация ссылается на Детали (много-к-одному). А насчет конструкторов/плановиков - твоя ситуация не уникальна. У всех это разные люди. И у всех все должно собираться.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32925530
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот уж действительно: чужая душа - Потёмкин...
А насчет конструкторов/плановиков - твоя ситуация не уникальна.

Общим мне кажется следующее:
При описаниик комплектации, спецификации, сборки выделяются две сущности реальный товар и его абстракция и по умолчанию это две разные таблицы У Сереги Реальный Товар-"Спецификация", Абстрактный-"Детали", У Olol "Изделие" и "Товар", у меня "Шаблон" и "Товар", далее для каждой из сущностей строятся "отношения" или в отдельной таблице или замыканием таб на себя. Хотя мне кажется это не самый эфективный способ, я начинаю склоняться к мнению что "Абстракция" должна быть частью составного ключа
"РеальногоТовара", тогда и "ОтношенияАбстракций" будет одновременно и "ОтношениемРеальныхТоваров". "Отношения" мне кажется все таки надо обязательно выносить в отдельную таблицу а не как у Сериги замыканием на себя, здесь конечно появятся дополнительные заморочки, что в одной таблице "отношений" будет много "деревеьев" и нужно вводить как минимум или дополниткльное поле "ТипОтношений" или для каждого типа отношений строить свою таблицу "Отношений".
"Абстракцию" делать сотавным ключом "РеальногоТовара" тоже можно делать по разному, или по простому в таблице "РеальныйТовар" сделать поле IDАбстракция, связав их один ко многим напрямую, или выделив в отдельную таблицу, но это уже вроде перебор. Итого "Реальный Товар", будет иметь сотавной ключ "Абстракция", "Набор-параметров-и их значений".
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32925604
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h2ospbПри описаниик комплектации....
Запутался я в твоих терминах. "Детали" у меня просто справочник уникальных деталей . Деревянная структура его - просто навеска для облегчения работы и улучшения наглядности - он может быть и плоским, это не принципиально . А "Спецификация" - это описание реального товара через соотношений уникальных деталей.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32925643
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серега h2ospbПри описаниик комплектации....
Запутался я в твоих терминах. "Детали" у меня просто справочник уникальных деталей . Деревянная структура его - просто навеска для облегчения работы и улучшения наглядности - он может быть и плоским, это не принципиально . А "Спецификация" - это описание реального товара через соотношений уникальных деталей.


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

h2ospbчто бы "Детали" были составеным ключом "Спецификации"
Растолкуй мне эту фразу. Если Спецификация ссылается на Детали это не оно?

h2ospbа сейчас у тебя слишком избыточные данные наверно это то же не единственный путь. или ты считаешь что я не о том??
Избыточность есть конечно. Но почему "слишком"? Значения в "Деталях" являются значениями "по умолчанию" для "Спецификации".
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32926264
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серега
Избыточность есть конечно. Но почему "слишком"? Значения в "Деталях" являются значениями "по умолчанию" для "Спецификации".

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

но можно подойти через составной ключ у спецификации
1 строка ключа IDДетали (в данном случае карбюратор),
2 строка ключа тип параметра (в данном случае материал)
3 строка ключа значение параметра (в данном случае, пластмасса или латунь)

4 строка уже не ключ артикул изделия

2 и 3 строка здесь смотрятся конечно несколько стремно и для реальной работы надо что то еще придумать типа один ID есть сочетание параметров и их значений или как то так, но суть в следующем что эти две таблицы уже совсем не то что когда есть отдельно "детали", и отдельно "спецификация" с отношением один ко многим, и дело не толко в сокращении объема данных , а прежде всего в том что отношение между "деталями" и отношнеие между "спецификациями" при это подходе одно и тоже.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32926355
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Серега]Ты веришь в идеальные решения?

quot]

В идеальные решения я даже в теории не верю,
но как писали в каком то топике , может быть даже кстати ты, думать нужно всегда, а на каких-то стандартных задачах, легко скатываешься на стандартный подход, а более эффективное решение с учетом данной конкретики лежит в полшаге от тебя, по другому посмотреть на таблицу отношений, еа ключ, а свой глаз уже замылен своими тараканами поэтому и хочется услышать со стороны я в се это же делаю наоборот
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32926433
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h2ospbНапример у тебя получается в "Деталях" есть строчка -карбюратор-,а в спецификации -карбиратор, пластмассовый арт 124-, и вторая строка -карбюратор латунный арт 357- и тп.п конечно есть связь одни ко многим
Нет. У меня в "Деталях" есть и "карбюратор пластмассовый арт 124" и "карбюратор латунный арт 357" со всеми своими оригинальными жиклерами, прокладками и т.п. А в "Спецификации" построено дерево со своими независимыми полями ID-Parent_Id (повторяющими входимостью дерево из "Деталей") каждая запись которой ссылается на соответствующую деталь из "Деталей". Т.е. подтаскивая из "Деталей" в "Спецификацию" к узлу Двигатель новый узел "Карбюратор латунный арт 357" в "Спецификации" достраивается новая ветка со всеми входящими деталями из "Деталей". Потом в "Спецификации" можно заменить любую деталь на любую другую (существующую уже в "Деталях"), например заменить в латунном карбюраторе прокладку на прокладку от пласмассового.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32926469
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серега"Детали" у меня просто справочник уникальных деталей ...
А "Спецификация" - это описание реального товара через соотношение уникальных деталей.

Да и в структуре моей вроде видно, что Спецификация ссылается на Детали (много-к-одному).
А сборочная единица (например: с деревянной или металлической ручкой)
будет иметь две спецификации ?
Или это будут в справочнике деталей две записи СбЕд.дер и СбЕд.мет ?

Как я понял, у тебя два уникальных товара (например: с разными ручками в сборочной единице на третьем уровне) будут иметь разные спецификации, по крайней мере до этого уровня.

Базовую спецификацию занесут конструктора, а сбыт копируя ее состав в разные товары поменяет необходимые позиции...

А в случае изменения в базовом изделии необходимо менять состав всех товаров полученных из нее...

h2ospb...что бы "Детали" были составеным ключом "Спецификации"

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

Товары: (Id_Товара, Наименование)
01, Нож Дер.ручка
02, Нож Мет.ручка

Шаблоны: (Id_Товара, Id_Изделия, Кол-во)
01, 10, 1
02, 10, 1

Изделия: (Id_Изделия, Наименование)
10, Нож
20, Лезвие
30, Дер.Ручка
40, Мет.Ручка

Спецификация: (Id_Спецификации, Id_Изделия, Id_Изделия, Кол-во, Тип)
100, 10, 20, 1,
200, 10, 30, 1, * (основной)
300, 10, 40, 1, + (дополнительный)

Варианты: (Id_Спецификации)
200, 01
300, 02

Получаем для Товара = 01 (Нож Дер.ручка):

Товар->Шаблон: 01, 10, 1
Шаблон->Изделие: 10, Нож

Изделие->Спецификация:
100, 10, 20, 1,
200, 10, 30, 1, * (основной)
300, 10, 40, 1, + (дополнительный)

Спецификация->Варианты
200, 01 (берем только эту позицию)
300, 02 (эта для Нож Мет.ручка)

На сегодня у меня все... убегаю... :)
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32926539
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ololА сборочная единица (например: с деревянной или металлической ручкой) будет иметь две спецификации ?
Да. На первый взгляд это кажется громозко. Но когда представишь богатство всех вариантов и их сочетаний, и прикинешь как со всем этим работать в динамике... В общем я плюнул на эту идею (она тоже была ) - динамически формировать комплектацию по условиям вариантов. Например деревянные/метал. ручки + краное/черное/зеленое + со светильником/без него. Потом выясняется, что зеленое+метал нельзя, а дерево+красное - единственно возможное сочетание и т.д. А если еще добавить еще более неслабую вариантность производства - вообще вешаться можно.
Вобщем, если процесс составления комплектаций немного автоматизировать, то не так уж и страшно. А объемы, хрен с ними. Оракл умный - пусть лопатит.

ololИли это будут в справочнике деталей две записи СбЕд.дер и СбЕд.мет ?
Нет. Будет базовая с деревянной ручкой полностью, и металическая ручка отдельно.

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

ololА в случае изменения в базовом изделии необходимо менять состав всех товаров полученных из нее...
Можно просто составлять новые комплектации. В старых (утвержденных) ничего менять нельзя.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32926553
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СерегаНет. ----- Потом в "Спецификации" можно заменить любую деталь на любую другую (существующую уже в "Деталях"), например заменить в латунном карбюраторе прокладку на прокладку от пласмассового.
Непрошло и полгода как до меня дошло что ты делаешь, надо переварить, спасибо
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32927410
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СерегаНет. Будет базовая с деревянной ручкой полностью, и металическая ручка отдельно.
Вот именно по этому дерево в деталях излишне... раз уж всеравно не для всех... (хотя дело вкуса...)

СерегаВ моем случае все Спецификации составлялись только конструкторами.
У меня Спецификации - конструкторами, а Состав товара (шаблон) - сбытом...

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

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

Серега olol
А сборочная единица (например: с деревянной или металлической ручкой) будет иметь две спецификации ?

Да. На первый взгляд это кажется громозко. Но когда представишь богатство всех вариантов и их сочетаний, и прикинешь как со всем этим работать в динамике...
Это точно... хотя как хочется это обойти...
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32927560
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ololВот именно по этому дерево в деталях излишне... раз уж всеравно не для всех... (хотя дело вкуса...)
Я бы сказал необязательно и непринципиально. А излишне - нет. Набирать состав в 200-300 деталей из нескольких тысяч по одной детали из плоского списка - та еще работенка.

ololНаверно так и должно быть...
Если иметь в виду, что есть еще производство, которое может еще очень долго производить "старую" комплектацию, то по другому, ИМХО, вообще никак.

ololЭто точно... хотя как хочется это обойти...
Ну попробуй. Тут ведь еще и аспект производительности. Запрос на состав изделия нужен всем и всегда. Получать его динамически - дорогостоящая процедура. Тут эе получаем при бОльшем объеме бОльшую простоту доступа к данным. Я вообще пошел на частичную денормализацию и добавил в Спецификацию поле - ссылку на головную ветку. Т.е. у всей ветки - одинаковый идентификатор. Это позволило выбирать все детали не только деревом, но и плоскими запросами (ессно без сохранения структуры). Производительность выросла на порядок.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32928539
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серега ololНаверно так и должно быть...
Если иметь в виду, что есть еще производство, которое может еще очень долго производить "старую" комплектацию, то по другому, ИМХО, вообще никак.
Ты меня убедил в необходимости отдельной и независимой спецификации для товаров... но должна быть и стандартная спецификация...
Серега ololВот именно по этому дерево в деталях излишне... раз уж всеравно не для всех... (хотя дело вкуса...)
Я бы сказал необязательно и непринципиально. А излишне - нет. Набирать состав в 200-300 деталей из нескольких тысяч по одной детали из плоского списка - та еще работенка.
Если есть типовая спецификация на изделия, а на товары делалается с нее копия, то вовсе не нужно набирать состав из 200 деталей, они все возьмутся со стандартного изделия или узла...
Причем и менять ее конструктора могут спокойно без всякого опасения испортить комплектацию товаров...
А все новые товары, копируемые с них, получат копию последнего варианта...
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32928559
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И на последок: Всех с праздником... кто до смотрел до этого места... :)
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32930416
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ololЕсли есть типовая спецификация на изделия, а на товары делалается с нее копия, то вовсе не нужно набирать состав из 200 деталей, они все возьмутся со стандартного изделия или узла...
Одно другому не мешает, ИМХО. Напротив - дополняет. У меня тоже можно копировать стрый вариант Спецификации в новый.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32930562
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у кого как работает теперь вроде бы понятно, интересно а какие прежде всего минусы каждый видит у себя и возможные способы их устранения????
НА мой взгляд общей какойто схемы врядли можно составить, но какие то общие моменты несомнено есть. В зависимости от задач подход может быть очень разный,
1.По умолчанию конечным результатом есть составление спецификации конкретного изиделя из конкретных комплектующих, (другое дело как это выглядит ипользуя, готовые узлы анологичных моделей, используя абстрактый шаблон из абстрактных изделий ),
но уже здесь есть масса нюансов, если даже у нас есть соответствующая структура и алгоритмы, которые позволяют это реализовать, то:
получается очень большое кол-во этих спецификаций, что может стать просто не посильной задачей для конечного пользователя (даже с учетом коприования и шаблонов), упорядочивание и структурирование и отслеживание изменений этих спецификаций становится отдельной и достатчно трудоемуой задачей. Компромисом на мой взгляд является сознательный отказ от задачи составить все эти спецификации, и ограничится только более общими спецификациями, например Спецификация ножа (какогото ножа не конкретного): лезвие (какоето), ручка (какаято), заклепки (какието). и все и не состовлять спецификации для ножа с деревянной , металической или пластмассовой ручки вообще. Тем самым абстрагируем уровень описание производства с конкретного изделия до абстрактного,
Опсиние склада и перемещение комплектующих и готовых изделий в поизводство и с производства мы продолжаем описывать в конкретных изделиях, и остатки на складах у нас остается в конкретных изделиях, а вот производство уже в абстрактных, при этом мы всегда по приходу и расходу пожем понять каково распределение между абстрактным товаром и конкретным. Такие допущения мне кажется во многих случаях вполне уместны, при условии что производственный цикл относительно короток, и основные материальныее ресурсы на складе а не в производственном цикле.
2. По поводу описания самой структуры по умолчания подрузомевается иерархия внутри спецификации я для себя ее называю горизонтальной, но ведь еще есть и иерархия "классов" или как бы вертикальная, попробую объяснить что я имею вв виду: при описвнии "ножа", можно использовать понятие "Ручки", потом ввести понятие "РучкаДеревянная", "РучкаПластмассовая", "РучкаМеталлическая", Далее можно углубиться еще на один уровень "РучкаБерезовая", "РучкаДУбовая" и так далее, (Это не противоречит моему верхнему предположению поскольку я все равно оперирую абстрактными понятиями). на лицо явная иерархия, но вдругом направлении,
возможно что могут быть и другие направления.

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

а вот производство уже в абстрактных, при этом мы всегда по приходу и расходу пожем понять каково распределение между абстрактным товаром и конкретным.
Мне кажется - это ошибка. Причем принципиальная. Не производство обслуживает склады, а наоборот. Это производству планируют произвести деревянные или другие ручки. А склады и прочие службы работают на обеспечение этого выпуска.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32930868
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СерегаМне кажется - это ошибка. Причем принципиальная. Не производство обслуживает склады, а наоборот.

Здесь надо найти разумный комромис что важно а чем можно и пренебречь, заменили гайку, и перепсывать все спецификации где она участвует, пусть даже в полавтоматическом режиме я думаю это не правильно, другое дело, ручка , деревянна, березовая, березовая с дырочками, где здесь остановиться это вопрос конкретной предметной области, на на каомто моменте надо остановиться обязательно. Объем работы должен быть реальным иначе он становится бесмысленным.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32930901
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серега
Есле бы ты сейчас стал заново преписывать структуру и решил бы это сделать по уму, то по какому пути ты пошел бы ???

p/s я прекрасно понимаю что лучшая структура эта та котоая есть и работает
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32930956
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h2ospbЕсле бы ты сейчас стал заново преписывать структуру и решил бы это сделать по уму, то по какому пути ты пошел бы ???
Ты думаешь, что этот мой вариант был сделан за 2 дня? Ты ошибаешься. Я для этого переписывал систему минимум 1 раз полностью с нуля, не считая менее кардинальных правок. То, что я описал - это малюсенькая вершина здорового айсберга. Она и сейчас не идеальна - я это знаю. Если бы начинать заново, процентов на 90 было бы то-же самое, просто за пару-тройку лет эксплуатации/развития было колючей проволокой пришпандорено несколько нашлепок, неучтенных вначале. Вот их бы и "внедрил" в систему более человечным способом.

Но это было на "прошлой работе". Я ушел оттуда и теперь просто "сопровождаю" по договору.
...
Рейтинг: 0 / 0
комлектация-иерархия-многие-ко-многим
    #32931123
h2ospb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серега Ты думаешь, что этот мой вариант был сделан за 2 дня?

Но это было на "прошлой работе".

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


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