解决方案 »

  1.   

    http://blog.csdn.net/htl258/archive/2010/04/23/5518166.aspx
      

  2.   

    大致明白你的意思了,需要3个表,2个为基础信息表,1个为bom表
    基础信息表(物料):1.id物料,2.名称……
    基础信息表(成品):1.id成品,2名称……
    BOM表:1.idbom,2.id成品,3.id物料(将这2个设置为复合主键),4物料需求量
    这样就可以了,很简单的,自己多东下脑子
    如果需要10条裤子,首先从成品表中获取id成品,再去bom表中查看用料明细,这样就可以了,自己在拓展一下,生产什么的都很简单的
      

  3.   

    语言表达过于混乱,我只看懂了一个bom表
      

  4.   


    你说的和我现在的设计是一样一样的。我的问题是:
    基础信息表(物料):1.id物料,2.名称……
    基础信息表(成品):1.id成品,2名称……
    BOM表:1.idbom,2.id成品,3.id物料(将这2个设置为复合主键),4物料需求量意思,我物料表里有个衬衫物料 那我如果把它当做一个商品销售,是不是还要在成品表里建立一个衬衫商品 并建立BOM也就是说
    成品 表:A001 , W衬衫S码
    物料 表:101    , W衬衫S码
    商品与物料BOM 关系表:成品编号A001,物料编号101,物料数量 1W裤子在物料表里,物料表里还有布和服装辅料
    现在要做一些W裤子,这个是不是又要新的BOM表? 就是说W裤子的子物料?还有个问题,我的库存表 物料库存,还是成品库存? 因为成品是不是没办法统计库存,因为一个物料很可能被N个成品使用。怎么统计库存?
      

  5.   

    还有个问题,我的库存表 物料库存,还是成品库存? 因为成品是不是没办法统计库存,因为一个物料很可能被N个成品使用。怎么统计库存?
    这句我描述有点问题,我意思是,我按单来发货的,就是说今天来了两个A001 我就按A001的BOM 看需要发什么发几个。所以
    成品没办法搞库存是不是?
      

  6.   


    你说的和我现在的设计是一样一样的。我的问题是:
    基础信息表(物料):1.id物料,2.名称……
    基础信息表(成品):1.id成品,2名称……
    BOM表:1.idbom,2.id成品,3.id物料(将这2个设置为复合主键),4物料需求量意思,我物料表里有个衬衫物料 那我如果把它当做一个商品销售,是不是还要在成品表里建立一个衬衫商品 并建立BOM也就是说
    成品 表:A001 , W衬衫S码
    物料 表:101    , W衬衫S码
    商品与物料BOM 关系表:成品编号A001,物料编号101,物料数量 1W裤子在物料表里,物料表里还有布和服装辅料
    现在要做一些W裤子,这个是不是又要新的BOM表? 就是说W裤子的子物料?还有个问题,我的库存表 物料库存,还是成品库存? 因为成品是不是没办法统计库存,因为一个物料很可能被N个成品使用。怎么统计库存?

    你这个问题搞的我就很莫名了,按道理来说,你成品有成品的库存,物料有物料的库存,2个不大噶的,为什么搞到一块去,还有你说的那个几个东西作为一个货品来销售,那就表那几个定西组成一个单号,是一组东西,作为销售
    例如:销售表头:1.id表头,2.销售单号,3,销售日期
                 销售明细:1.id商品,2.id表头,3.订购量,4.出库量
                 成品库存:1.id商品,2现有库存量,3.安全库存量
                物料库存:1.id物料,2现有库存量,3.安全库存量
    销售→出库→成品库存更新→某个成品需要生成→生产→减去物流库存→检查物流库存
    你的思维有点混乱,你需要理清楚整个流程
      

  7.   

    一、 成品的结构设计方法:1.针对衣服产品:
    卖衣服,可以先不考虑设计bom,你可以参考天猫的一些设计,从产品分类,产品特征(属性分类,属性值),最后SKU。
    衣服你可以考虑从款式+尺码+颜色 ,这3个属性构成一个SKU。一套衣服可以设计成有几个SKU组成。在设计上如何描述呢,可以参考:|---- 产品大类    (+ 属性 +属性值)
         |---------- 产品子类    (+ 属性 +属性值)
               |--------Detail      (Detail层也可以定价,设库存, 有些产品这层也可能有特殊的属性,可以另+属性+属性值)
                      |------SKU      (可以SKU层可以定价,设库存)
    2.针对电子产品:
    SKU不采用衣服的组合方式,需要根据某一或几个产品属性分类构成SKU。如手机,可以是款式+颜色+内存大小 ,或还加别的属性组成SKU。二、 BOM结构设计方法:可以考虑最简单实用的方法,就是物料到成品的组成关系,在数据库中可描述为嵌套关系,即父子关系。简单分层:
    1. 物料
    2.半成品
    3 .配件(组件)
    4.成品简单的BOM表可以这样:BOM_component:
    componentID  component_type  parent  level  qty unit  .....  component_type 可以是成品 或物料或其他,当component_type=成品 ,componentID指向前面的产品表。如果是物料,那么指向物料表(需要先设计1个物料表,描述物料基础信息和采购来源等)
    进一步扩展,一成品可能这次的用料是这样,下次生产用料又是另一样,我们可以考虑在BOM_component:加入1字段来区分。
      

  8.   


    我有个产品BOM关系 
    如 A001 产品包括      
             物料号,数量
             101     ,  1
                    307     ,  2那么,我想法是A001 本身是没有库存的,物料才有库存
    当今天有人购买一个A001 我就根据BOM关系 把101减去1,307减去2
    这样想对吗?还是说 A001 要有库存?物料也要有库存,需要有一个A001制造入库,同时101,307 制造出库?那如果这样想是对的。那我该设计几个表?
      

  9.   

    我有个产品BOM关系 
     如 A001 产品包括      
             产品ID, 物料号,数量
               A001, 101     ,  1
                        A001,  307    ,  2
     
    那么,我想法是A001 本身是没有库存的,物料才有库存
     当今天有人购买一个A001 我就根据BOM关系 把101减去1,307减去2
     这样想对吗?还是说 A001 要有库存?物料也要有库存,需要有一个A001制造入库,同时101,307 制造出库?
     
    那如果这样想是对的。那我该设计几个表?
      

  10.   


    1.BOM表里面的数量不是库存,只是描述生产某一单个产品所需物料的数量。
    2.如果你想描述物料库存,需要专门一个物料库存表来描述。同理,产品也是类似。
    3.卖了1件产品(如A001),不是减少某一个物料的库存来描述减少1个产品。物料的减少是发生在生产过程,而不是销售过程。物料变成产品,不是一个量的改变,而是质的改变。这里描述一个简单的采购物料-->销售产品的过程:
                买物料-->入库-->存储-->工场加工消耗物料-->产出产品-->销售成品(商品)所以卖出1件产品,是成品的数量减少,而不是物料的减少。
      

  11.   

    如果是小型数据库,要求没那么严格,可以笼统的放在一起,使用字段区分是物料还是产品。如果分开,设计上比较复杂,如前面说的,BOM_component:
    componentID  component_type  parent  level  qty unit  .....  component_type 可以是成品 或物料或其他。在销售中,要明确区分各种可销售的Item :
    Item Item_type  Item_type 描述的是Item类型(如,产品,配件,或物料)当Item_type =产品,Item指向产品表;
    当Item_type =配件,Item指向配件表;
    当Item_type =物料,Item指向物料表。
      

  12.   

    一、物品表 M(ID,名称,类型,商品标志)
    类型 = {
      原料:不能直接拿来卖的
      单件:产品的最小组成(以可能单独发货的标准衡量,如果会补客户一只手套就按只算,否则就按副算)
      套装:多个单件组合成的产品
    }
    比如手机分为机身、电池、耳机、充电器等,即使实际不拆开,也要按照分开的单件入库。
    用来销售的搭配一电一充、两电一充就是不同的套装了。
    商品标志 = {True,False}
    原料肯定为 False,套装应该为 True(False表示下架了?)。
    考虑单件也可以单独卖(比如一副耳机),所以加个标志方便出商品目录。二、物料表 BOM(父ID,子ID,子数量)
    没有“C套装=A套装+B套装”的多级关系,将A、B套装的单件合并起来就是C套装的BOM。
    这里的“父—子”可以指“单件—原料”,也可以指“套装—单件”。
    tips: 对于 商品标志=True 的单件,如果不是自产的,加一条 (A103,A103,1) 的记录,
    有惊喜——就是所有商品都有 BOM 表,写查询会简单得多。三、库存表 S(ID,库存数量)
    其实也可以合并到 M 表中,但是作为经常更新的字段,还是单列吧。
    原料和单件一定要记录库存数量;
    套装也可以记一个最大可销售数量,按照单件的数量计算。
      

  13.   


    1.BOM表里面的数量不是库存,只是描述生产某一单个产品所需物料的数量。
    2.如果你想描述物料库存,需要专门一个物料库存表来描述。同理,产品也是类似。
    3.卖了1件产品(如A001),不是减少某一个物料的库存来描述减少1个产品。物料的减少是发生在生产过程,而不是销售过程。物料变成产品,不是一个量的改变,而是质的改变。这里描述一个简单的采购物料-->销售产品的过程:
                买物料-->入库-->存储-->工场加工消耗物料-->产出产品-->销售成品(商品)所以卖出1件产品,是成品的数量减少,而不是物料的减少。

    物料库存归物料库存
    成品库存归成品库存
    2个没关系的
      

  14.   

    明天你的意思了,那么我有这么几个表,你看看合理不.
    1.产品表 
         这个表里记录,不管是外购的,还是自己产的 只要可以卖的都放在这个表里
        (这个有相关的 产品出库,产品入库,盘点表,产品库存等等)2.物料表 
         这个表里记录,只要是需要自己生产装配的辅料及配件都放在这个表里,就是说这里保存的物料配件是为了最终生产产品的
        (这里也有相关的 物料出库,物料入库,盘点表,物料库存等)3.产品BOM表 (这个是记录自产产品的构成清单,如果我有些产品是自己装配生产的,那么,这个表就是产品所包含的物料及用量的关系)4.物料BOM表 (这个表是记录物料间的父子关系的)
         物料BOM表这个表有必要吗?为什么?问题1 :看看合理不?是不是有点复杂,或者不合理,能帮我提提建议或者按你的思路给我讲解一下可以不?
    问题2:针对上面第1,和第2两个表的解释 我有如下问题
           如果我外购了一个产品 是一套女内衣(胸罩+内裤) 按我上面的设计是放在产品表里的对吧, 现在例如卖出一套客户收到这套内衣反应这个内裤坏了,那么我给重新发个内裤 这个又怎么操作扣一个产品的库存吗?因为这个是外购的,物料表里没有这个配件(内裤或胸罩)也没就没有单独的内裤库存,胸罩库存。
    这个问题,我是这样想的你看对不?不管是外购还是自产,外购来个衬衫也放在物料表里一个衬衫,外购来套内衣,我就拆开,一个内裤物料,一个胸罩物料,再给他们建立产品关系,
    产品表        产品编号 ,产品名              ,  属性
                   A001      ,W牌红色内衣全套    ,  外购
                   A002      ,H牌蓝色衬衫        ,   外购
                   A003      ,888型内衣全套      ,   自产物料表        物料编号 ,   物料名                      单位
                     601     ,   W牌红色胸罩           ,    件
                     602     ,   W牌红色内裤           ,    件
                     603     ,   H牌蓝色衬衫           ,    件
                     604     ,   888型号布料           ,    米
                     605     ,   888型号胸罩吊带8字扣  ,    个
                     606     ,   888型号胸垫           ,    个
    产品BOM表     产品编号  , 物料编号,物料用量
                       A001   ,   601     ,   1.0
                                      A001   ,   602     ,   1.0
                                      A002   ,   603     ,   1.0
                                      A003   ,   604     ,   0.6
                                      A003   ,   605     ,   2
                                      A003   ,   606     ,   2按以上表数据来,如果给客户寄的时候,直接寄个物料602 对不,
    问题3:那么,我是不是A001,A002 这个都要有个生产动作是不?
      

  15.   

    不管你表怎么设计,原则参考我 15 楼。问题2:
    BOM 表
    内衣,胸罩,1
    内衣,内裤,1购入10套,分单件入库为
    M 表
    胸罩,10
    内裤,10
    内衣,10 <- 可选,记下来便于查询可销售数卖出1套,减库存数
    M 表
    胸罩,9
    内裤,9
    内衣,9补发1条内裤
    M 表
    胸罩,9
    内裤,8
    内衣,8 <- 可销售数也下降了
      

  16.   

    问题1 :
    作为面向销售的系统,BOM 关系直接扁平化就可以了。
    你只要知道用什么原料可以生产出某产品、用什么单件可以打包成某套件。至于生产过程有什么中间产物、打包是否要分级包装,完全不用关心,只要关心最终结果。表1、2分开也没有关系;
    表3不仅限于自产;
    表4 完全可以丢弃。
    库存还是单独出来好,否则同样的 BOM 运算就因为表不同要分开写 UPDATE 语句了。
      

  17.   

    好。很明白了。
    还有一个问题。
    1.将所有东西放在一个表里,合理不?对以后扩大增强有影响不?且不管数据量大小问题。
    2.根据你15楼的理解,我就要有几个逻辑理解。
                          2.1 成品(商品) BOM关系父子关系的 子 只能是单品。(这里有个包装材料也属于原料,我可以再通过一张表来记录产品或单品的包装料)
                          2.2 单品 的BOM 也在BOM表里记录一条 父子都是自己。方便查询。
                          2.3 我还要有张生产BOM表 就是属于自加工的单品 有个对应的物料清单,对吧?
    3.单品,原料,包装材料,有几个必须动作就是外购入库或生产出入库,拆解入库(如果是自产的,可以按上面2.3的清单拆分入库,相应原料库存增加且单品库存减少)
    4.成品有个组装入库,拆分出库。其中组装入库是按BOM关系对应的单品库存量并以操作人输入的方式设置成品库存量,按成--单品BOM关系并相应减少单品库存。拆分出库是将产品按BOM清单里的单品拆分,并相应的增加单品库存。我以上描述有不合理的地方吗?
    如果对了,我就要下手了。结贴给分,并发自肺腑感谢。
      

  18.   

    你这个bom表太多了,按理论只有成品,物料与之对应得bom表,你所要做的只是知道你卖出去多少成品,还有多少成品库存,还有多少原料库存,就这么简单啊。怎么搞的这枚复杂?外购得物品,你得成品表中另外加一列 自产否 bit用这个区分就好!
      

  19.   

    只要数据关系简单(没有多级BOM),十万级的记录操作很轻松的(当然排除Access这种简易数据库)。
    2.1 没错,拆分到单品就避免了多级BOM
    2.3 不要。你是销售系统,忘了生产和打包,BOM 只是说哪些物品的可以组合[b]成另外一个物品,至于组合怎么操作,系统不管。
    区分原料和单品只是为了理解方便,原料的组装需要时间、单品的组装立马可以完成。
    对系统规则没影响。
    如上,管他怎么来的,有东西就入库,没有区别。
    套装在系统记录上按拆分入库,实际动作上没必要拆,只要你能在仓库中找到对应物品。
      

  20.   

    套装在系统记录上按拆分入库,实际动作上没必要拆,只要你能在仓库中找到对应物品
    ----------------------------------------------------------------------------------------------------------------------
    没有组装入库 也就是说套装的实际库存,因为你只有套装其子单品的库存,
    例如 按你18楼说的如下BOM 表
     内衣,胸罩,1
      内衣,内裤,1
     
    购入10套,分单件入库为
    M 表
     胸罩,10
      内裤,10
     内衣,10 <- 可选,记下来便于查询可销售数那我胸罩卖了一个,我是否要去再减掉 套装1,减掉胸罩 1 
    关键是,我程序有个功能就是,按当前在卖的东西实际库存量修改在线量
    我20楼所说的,有个组装过程,就是为了让每个在卖的产品有准确的库存,例如程序提示套装库存不足,管理人员收到提示立即查看其子单品库存量,并适当组装成套装入库或者对单品采购或者生产。
    例如,我在线的 有胸罩,有内裤,也有套装,那你说,我程序去修改在线库存量的时候,该如何确定他们三个哪个确切库存,如果我都改成10 ,那一下子今天胸罩今天卖了10个 套装卖了2个。怎么办?程序再去分析哪个卖的更好?或者按都有10个库存,那保守点都上5个。这样不太准确。
      

  21.   

    楼主,为什么这么复杂呢?
    你所有的问题只不过在围绕怎么卖,库存怎么算而已,
    什么组装,什么拆分都出来了,如果你套装卖的是不一样的钱,那就要一个套装的bom表,如果不是那无所谓拉
    最好的如果你要套装的话bom表(套装):id套装,id单品
    bom表(单品):id单品,id物流
    库存表(子物料):id物料,库存,单位
    库存表(成品表):id单品,库存,单位,套装否