关于一个数据库表设计的问题

时间:2022-12-11 18:14:00
  最近准备在搞一个进销存的数据库,但是本人没什么经验,在设计系统基础表的时候就头大了,我们要设计一个物品表,经过讨论,有人认为把产品(由工厂生产),原料(采购得到),杂物(家具,电脑,设备等)放进同一个表,称为物品表。具体如下:
  物品表:物品ID,物品名称,物品类别ID。
  物品类别表:物品类别ID,物品类别名称。
  举例:物品ID,物品名称,物品类别ID
          1       甘油        1
          2       优酸乳      2
          3       电脑        3
          4       调味剂      1

       物品类别ID,物品类别名称
          1             原料
          2             成品
          3             设备

  这个设计好像没什么大问题,但感觉就是怪怪的,一般来说好像要分开3个表,感觉以后编写代码进行增删查改会有难度。
  还有一点就是,有人说仓库表也不是基础表,搞得我头都大了,好像跟我以前学的数据库设计理论不太相符合,求指教!

9 个解决方案

#1


这个设计是很合理的.

为啥你感觉怪怪的?

#2


呵呵,数据库设计人者见人,智都见智,没有统一的方案,使用起来方便就行了,我们单位跟你一样,也准备建个数据库,你那还行,有人提建议,我这就老哥一个,领导提的就是什么功能,想起什么加什么,后来又想买个二次开发软件,买个二次开发的,软件公司要具体开发文档.没人能说清楚.还闲价格贵,但外来和尚会念经.呵呵,弄得我也没兴趣在继续下去.

#3


一个产品表,一个产品类别表就可以了.

如果含生产,再整个bom

#4


如果数据量小的话这样设计物品表挺好的,方便维护,试想一下,如果有新物品的话,你还要建立新表吗?

#5


该回复于2012-09-14 09:48:52被版主删除

#6


如果确定是“进销存”系统的话。那些只有“存”意义的东西(比如杂货...)最好别放在一起,不然以后你的所有查询都要加上 物品类别ID<>3 之类的...

另外,如果原料和产品之间要有联系的话。确实需要加个BOM表,并且原料和产品也要分开。但这就不光是“进销存”系统了。而是有BOM管理的功能了。

#7


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

为啥你感觉怪怪的?

#8


我跟你情况差不多吧,人家是老师,我是学生,他说话我总要听,我提建议他也可能听不进去,没办法
引用 2 楼  的回复:
呵呵,数据库设计人者见人,智都见智,没有统一的方案,使用起来方便就行了,我们单位跟你一样,也准备建个数据库,你那还行,有人提建议,我这就老哥一个,领导提的就是什么功能,想起什么加什么,后来又想买个二次开发软件,买个二次开发的,软件公司要具体开发文档.没人能说清楚.还闲价格贵,但外来和尚会念经.呵呵,弄得我也没兴趣在继续下去.

#9


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

如果含生产,再整个bom

#1


这个设计是很合理的.

为啥你感觉怪怪的?

#2


呵呵,数据库设计人者见人,智都见智,没有统一的方案,使用起来方便就行了,我们单位跟你一样,也准备建个数据库,你那还行,有人提建议,我这就老哥一个,领导提的就是什么功能,想起什么加什么,后来又想买个二次开发软件,买个二次开发的,软件公司要具体开发文档.没人能说清楚.还闲价格贵,但外来和尚会念经.呵呵,弄得我也没兴趣在继续下去.

#3


一个产品表,一个产品类别表就可以了.

如果含生产,再整个bom

#4


如果数据量小的话这样设计物品表挺好的,方便维护,试想一下,如果有新物品的话,你还要建立新表吗?

#5


该回复于2012-09-14 09:48:52被版主删除

#6


如果确定是“进销存”系统的话。那些只有“存”意义的东西(比如杂货...)最好别放在一起,不然以后你的所有查询都要加上 物品类别ID<>3 之类的...

另外,如果原料和产品之间要有联系的话。确实需要加个BOM表,并且原料和产品也要分开。但这就不光是“进销存”系统了。而是有BOM管理的功能了。

#7


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

为啥你感觉怪怪的?

#8


我跟你情况差不多吧,人家是老师,我是学生,他说话我总要听,我提建议他也可能听不进去,没办法
引用 2 楼  的回复:
呵呵,数据库设计人者见人,智都见智,没有统一的方案,使用起来方便就行了,我们单位跟你一样,也准备建个数据库,你那还行,有人提建议,我这就老哥一个,领导提的就是什么功能,想起什么加什么,后来又想买个二次开发软件,买个二次开发的,软件公司要具体开发文档.没人能说清楚.还闲价格贵,但外来和尚会念经.呵呵,弄得我也没兴趣在继续下去.

#9


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

如果含生产,再整个bom