现在我有一张表bom   mid表示物品编码 ,Cid表示所组成的物品编码,num表示 所需要 Cid物品个数 
(举例现有一支笔A,笔由笔帽,笔心,外壳组成,笔心由,油墨,笔心壳组成)这种组合会随不同物品而变化,产生不同的层级)  
   Mid  Cid   num 
    A    A1     2 
    A    A2     3 
    A    A3     3 
    A2    A3     3 
    A2    A4     3 
    A2    A5     3 
    A4    A5     3 
    A4    A6     3 
 ......... 
表 store 仓库,mid即物品编码  SL表示数量  
Mid    SL 
A       2 
A1      5 
A2      3 
A4      1 
A5      2 
A6      3 
  
 现在要求领10个A,程序大致要这样执行,先去store看A的个数,成品有2个,接下来8个要用子原料来生产,A2=3*8  A3=3*8,然后再看A2 A3各自库存数……这样,可以通过哪种算法去实现?