读书人

请问~药库管理系统数据库设计有关问题~

发布时间: 2012-02-03 22:02:47 作者: rapoo

请教~!药库管理系统数据库设计问题~!
小弟最近才加入一个学校的药库管理系统开发组中,对于这种系统的许多流程方面还不是太明白,请教各位大大:

现有数据库设计如下:商品期初表、入库登记表、入库明细表、出库登记表、出库明细表、退库明细表、退货登记表、退货明细表、商品盘存表、商品库存表等等。我想不明白的是:既然商品库存表是记录现有库存的,是由期初+入库+退库+盘盈-盘亏-退货-出库 并分批次 计算得到的,那商品库存表是如何添加和修改、删除记录的?又在什么时候做这些操作?

比如:期初时:
期初表:
批次编号 商品编号 数量
qc20070403001 7020101001 10
qc20070403001 7020101002 20
qc20070403001 7020101003 30
如果这时系统刚建立,还没有其它记录如入库,出库等,是否就是说,现在库丰表中也是:
批次编号 商品编号 数量
qc20070403001 7020101001 10
qc20070403001 7020101002 20
qc20070403001 7020101003 30

那入库时:
入库明细表:
批次编号 商品编号 数量
rk20070403001 7020101001 100
rk20070403001 7020101002 200
rk20070403001 7020101003 300
那么现在库存表中该如何操作记录呢?因为是按批次管理,所以库存表中每种商品都应记录每种批次的数量?如果是这要,那库存表中应该:
批次编号 商品编号 数量
qc20070403001 7020101001 10
qc20070403001 7020101002 20
qc20070403001 7020101003 30
rk20070403001 7020101001 100
rk20070403001 7020101002 200
rk20070403001 7020101003 300
可是这样的话,这些记录实际与其他表是一样的,这些操作岂不是浪费资源和时间?但老师告诉我,必须有库存表来记录商品的实际数量,我知道老师说的应该是对的,可出库时怎么办呢?是否可以理解为:出库时的批次编号应为库存表中现有的某种商品的某个批次编号?(假设先入先出)
批次编号 商品编号 数量


qc20070403001 7020101001 5
qc20070403001 7020101002 20
rk20070403001 7020101002 30
那么,现在库存表中是否现在就变为:
批次编号 商品编号 数量
qc20070403001 7020101001 5
qc20070403001 7020101002 0
qc20070403001 7020101003 30
rk20070403001 7020101001 100
rk20070403001 7020101002 170
rk20070403001 7020101003 300
我的理解是否对的?各位大大对数据库的设计或操作可有好的建议?

[解决办法]
crud嘛..不过流程复杂点撒.
[解决办法]
库存表,很多字段,应该要用触发器和锁来改变值.
[解决办法]
按照你的说法,你所谓的 "批次编号 "依我看应该是 "单号 ".药品和器械应该自己有一个批号,按照 "单号 "来管理库存是不合理的.也就是像你说的每个 "单号 "在库存表中都有一条数据这显然不对.比如你分两天入了同一种药品,如果按你说的那样的话在库存表中有两条分开的记录.实际上这两中药品的所有属性都是相同的,分开记录就没有任何意义.应该是药品的实际属性不相同时才分开记录.对库存量的操作我也建议用触发器.
[解决办法]
出入库管理都是按批次进行的,库存的东西还分明细库存和现有总库存等等,有一般的东西,也有看具体要求的。具体的东西你可以找个库存管理系统的例子好好看看,我建议先看看规范的,这里难以一个个说明白

读书人网 >SQL Server

热点推荐