最近准备在搞一个进销存的数据库,但是本人没什么经验,在设计系统基础表的时候就头大了,我们要设计一个物品表,经过讨论,有人认为把产品(由工厂生产),原料(采购得到),杂物(家具,电脑,设备等)放进同一个表,称为物品表。具体如下:
  物品表:物品ID,物品名称,物品类别ID。
  物品类别表:物品类别ID,物品类别名称。
  举例:物品ID,物品名称,物品类别ID
          1       甘油        1
          2       优酸乳      2
          3       电脑        3
          4       调味剂      1       物品类别ID,物品类别名称
          1             原料
          2             成品
          3             设备  这个设计好像没什么大问题,但感觉就是怪怪的,一般来说好像要分开3个表,感觉以后编写代码进行增删查改会有难度。
  还有一点就是,有人说仓库表也不是基础表,搞得我头都大了,好像跟我以前学的数据库设计理论不太相符合,求指教!

解决方案 »

  1.   

    一个产品表,一个产品类别表就可以了.如果含生产,再整个bom
      

  2.   

    如果确定是“进销存”系统的话。那些只有“存”意义的东西(比如杂货...)最好别放在一起,不然以后你的所有查询都要加上 物品类别ID<>3 之类的...另外,如果原料和产品之间要有联系的话。确实需要加个BOM表,并且原料和产品也要分开。但这就不光是“进销存”系统了。而是有BOM管理的功能了。
      

  3.   

    因为我觉得把产品和原料,还有其他杂物放在同一个表的话,以后用SQL语句读取数据的时候,要多一层筛选,那样一边判断,一边读取数据在时间复杂度上就有问题了。
      

  4.   

    现在问题是要把产品,其他杂物还有原料都要放在一个表里,通过一个物品类别ID来区分它们的类型,BOM表也有,但老师说那不是基础表,我郁闷