现在我有一张表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各自库存数……这样,可以通过哪种算法去实现?
5 个解决方案
#1
用数据库的查询啊,
查询后汇总啊,
不需要什么复杂的算法.
查询后汇总啊,
不需要什么复杂的算法.
#2
Function Cal(物品代码c, 需要数量n)
{
if(物品C的库存 >= n)
{
需要准备的物品c数量加n;
return;
}
else
{
需要准备的物品c的数量就是库存数量;
for(遍历生产物品c所需要的所有物品种类k)
{
Cal( 生产单件C所需要的物品k的数量 * (n-物品c的库存) );
}
}
}
{
if(物品C的库存 >= n)
{
需要准备的物品c数量加n;
return;
}
else
{
需要准备的物品c的数量就是库存数量;
for(遍历生产物品c所需要的所有物品种类k)
{
Cal( 生产单件C所需要的物品k的数量 * (n-物品c的库存) );
}
}
}
#3
楼的,和我最初想的方法是一样
但是~~
我按这种递归,做出来还是出了问题
问题出在数据库记录集会丢失
但是~~
我按这种递归,做出来还是出了问题
问题出在数据库记录集会丢失
#4
"问题出在数据库记录集会丢失"
这不是算法的问题,是你代码的问题,想办法把结果保留下来吧。
这不是算法的问题,是你代码的问题,想办法把结果保留下来吧。
#5
这个问题,我发了好多天了
呵呵~~
现在还是自己解决了..
各位,还有什么执行效率高一点的没?
点拨一下~~
呵呵~~
现在还是自己解决了..
各位,还有什么执行效率高一点的没?
点拨一下~~
#1
用数据库的查询啊,
查询后汇总啊,
不需要什么复杂的算法.
查询后汇总啊,
不需要什么复杂的算法.
#2
Function Cal(物品代码c, 需要数量n)
{
if(物品C的库存 >= n)
{
需要准备的物品c数量加n;
return;
}
else
{
需要准备的物品c的数量就是库存数量;
for(遍历生产物品c所需要的所有物品种类k)
{
Cal( 生产单件C所需要的物品k的数量 * (n-物品c的库存) );
}
}
}
{
if(物品C的库存 >= n)
{
需要准备的物品c数量加n;
return;
}
else
{
需要准备的物品c的数量就是库存数量;
for(遍历生产物品c所需要的所有物品种类k)
{
Cal( 生产单件C所需要的物品k的数量 * (n-物品c的库存) );
}
}
}
#3
楼的,和我最初想的方法是一样
但是~~
我按这种递归,做出来还是出了问题
问题出在数据库记录集会丢失
但是~~
我按这种递归,做出来还是出了问题
问题出在数据库记录集会丢失
#4
"问题出在数据库记录集会丢失"
这不是算法的问题,是你代码的问题,想办法把结果保留下来吧。
这不是算法的问题,是你代码的问题,想办法把结果保留下来吧。
#5
这个问题,我发了好多天了
呵呵~~
现在还是自己解决了..
各位,还有什么执行效率高一点的没?
点拨一下~~
呵呵~~
现在还是自己解决了..
各位,还有什么执行效率高一点的没?
点拨一下~~