powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Дерево, элемент может быть потомком нескольких родителей(+)
2 сообщений из 27, страница 2 из 2
Дерево, элемент может быть потомком нескольких родителей(+)
    #33953124
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
Чтобы добавить узел, нужно выполнить развертку до этого уровня включительно.

С помощью этой таблицы она выполняется элементарно - все непосредственные родители + все содержимое этой таблицы для каждого из непосредственных родителей, с заменой id потомка на id нового элемента.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Дерево, элемент может быть потомком нескольких родителей(+)
    #39956809
_s_e_r_g_e_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
достаточно трех таблиц и одной процедуры:
parts (id, name) -- номенклатура (материалы, ПФ, готовая продукция)
bom (id, partid, compid, comptype, partqty,compqty) -- bom (рецептура)
mrp(id,comptype,lowlevel,itemid,qty,st) -- результаты расчета

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

Код: sql
1.
2.
insert into mrp (comptype, lowlevel, itemid,qty,st)
select 2,0,itemid,qty,0 from saleorder


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

-- process mrp

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
declare @n int
set @n = 0
while exists (select itemid from mrp where st = 0 )
begin
-- Raw materials

insert into mrp (comptype, lowlevel, itemid,qty,st)
select 1, @n, b.compid, b.compqty*p.qty/b.partqty,1
from mrp p inner join bom b on b.partid = p.itemid 
where p.st=0 and b.comptype = 1

-- products 

insert into mrp (comptype, lowlevel, itemid,qty,st)
select 2, @n+1, b.compid, b.compqty*p.qty/b.partqty,0
from mrp p inner join bom b on b.partid = p.itemid 
where p.st=0 and b.comptype = 2

update mrp set st=1 where lowlevel = @n
set @n = @n + 1

end


набор полей естественно минимальный. расширять по необходимости.
пример для ms sql. Для другого - изменить процедуру

?
Решаю похожую задачу. Наткнулся на пост iscrafm , кто-то может расшифровать таблицу BOM, что такое id, partid, compid, comptype, partqty,compqty и таблицу MRP , что такое id,comptype,lowlevel,itemid,qty,st
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Дерево, элемент может быть потомком нескольких родителей(+)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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