首页 > 解决方案 > 数据库设计:具有多个项目单元的库存(批发和零售)

问题描述

我为药品(药房)商店设计了一个数据库,它将批发和零售药品。有一些药物可以以多个单位出售,例如,药条、胶囊和药瓶。基本上,每种药物都可以以多个单位出售。这是我的数据库:

在此处输入图像描述

我有一个 inventory_movement 记录,记录了用于填写每个订单的特定库存。如果一个药物的基本单位设置为小瓶,并且它在inventory_movement中有一些与小瓶有关的记录,并且在一段时间后,我想以胶囊为单位出售该药物,此时,我如何将其记录到inventory_movement ? 我如何从库存中计算库存?

如果我更新 item_unit 记录以设置如下数据:

在此处输入图像描述

而且我需要扫描整个inventory_mocement 表以​​将基本单位更新为新的(胶囊)并使用乘数重新计算数量。这合理吗?

我的设计有什么缺陷吗?有没有人有任何想法(或例子)?

标签: databasedatabase-designinventory

解决方案


“我如何将此记录到inventory_movement?”

只需使用 appr 预订全部数量(在本例中为 7)。unit_id,然后将其与另一个unit_id.

我如何从库存中计算库存?

如果我是你,我会只为库存 (fe ) 设置一个新表item_id, unit_id, qty,并且每次移动我都会根据数量和 减少/增加库存unit_id。为此,我也会item_unit像这样更改表格:id, item_id, unit_id, multiplier, base_unit (bool). 并且该item_unit表将只是一个包含数据的主表,用于打包有多少个数据块。

因此,您无需查看移动表,您可以item_unit使用 appr 根据该表计算您的库存。乘数。


推荐阅读