我的需求比較簡單,就是將一個產品包含的所有半成品和物料全部找出來 bom結構如下: table: part 物料:partnum ,下屬物料mtlpartnum 資料結構即: PARTNUM MTLPARTNUM A B B C C D
如果没有性能要求那就用递归吧。如果物料庞大的话,递归基本会成为系统瓶颈。个人不喜欢递归。如果性能要求比较严格,最好修改表结构:PARTNUM MTLPARTNUM BOMPath A B \A\B B C \A\B\C C D \A\B\C\DBOMPath在记录插入表中时加入。这样查找A的所有子件的时候就可以: select * from table where BOMPath like '%\A\%'
from ...
where ...
start with ...
connect by expression;
在oracle 中可以這麼寫將BOM層次的資料全部取出來,在sql server聽說也是有函數可以處理
隻是不知道怎麼處理
http://community.csdn.net/Expert/topic/5292/5292899.xml?temp=.2070886
bom結構如下:
table: part
物料:partnum ,下屬物料mtlpartnum
資料結構即:
PARTNUM MTLPARTNUM
A B
B C
C D
A B \A\B
B C \A\B\C
C D \A\B\C\DBOMPath在记录插入表中时加入。这样查找A的所有子件的时候就可以:
select *
from table
where BOMPath like '%\A\%'