标题可能讲得不清楚,按照gdlgh兄弟的华海仓库管理示例中实现库存量显示好象是利用SQL查询语句查询出入库表生成的。
问题是在我们的系统中使用类似方法似乎不太合理,比如说药房里A药原库存量为0,入库5000粒,每天有20-40个患者使用该药,每人使用的量2-9粒不等,每个患者相当于一条出库记录,(这里必须分开,否则无法计算每人费用),如果初期使用他的方法不成问题,但是一个月甚至一年后呢?出入库表记录行数是巨大的,用此方法查询库存量似乎不太合理。
请问有没有比较好的建议?底层表的设计怎样才能比较合理?建立库存表实时更新库存量好象有点悬,害怕网络不稳定造成数据丢失。
PS:
本人有个设想,出入库表只存储该药当天的总出量,另建立一个明细表,存储每个患者当天使用该药的记录。还有更理想的吗?
[此贴子已经被作者于2009-7-3 21:32:26编辑过]
可否这样?
建一个药品信息表,此表列出所有药品信息,在这个表中增加一个本日入库数量列,一个本日出库数量列,一个本日库存列,一个库存列。
每天在入库表进行药品入库时自动或执行按钮对药品信息表的同一种药品的数量列写入本日入库数量,并计算本日库存。
出库时自动或执行按钮对药品信息表的同一种药品的本日出库数量列写入本日出库数量,并计算本日库存
结存的计算操作:
入库时可以手动执行库存量的结算,如,库存=库存+本日库存;清空本日入库和本日出库及本日库存列数据。
出库时可以手动执行库存量的结算,如,库存=库存-本日库存;清空本日入库和本日出库及本日库存列数据(每天下班前执行一次即可)。
这样不管你的数据量有多大,这个表始终只有所有药品个数的总和,就不会出现你担心的问题了。
[此贴子已经被作者于2009-7-3 22:16:51编辑过]
感谢楼上姐姐提供思路。
方法很独特,但是每天下班前执行结存似乎行不通哦,因为医疗单位其实是没有下班概念的,二十四小时都会有出库数据生成。而且设定冗余列相当于建立库存表实时更新库存量。医嘱的产生(相当于出库记录)是不分时段的,任何时间都有可能,每生成一条医嘱相当于更新了一次该药品的冗余列,过于频繁的更新在网络不稳定情况下丢失数据几率增大,从而导致库存量不准确。
[此贴子已经被作者于2009-7-3 22:56:26编辑过]