我正在为手机零售商构建一个库存软件。有几件事让我感到困惑。
好的,我们有:
- 产品
- 产品属性
- 条码
- 批量库存(购买/退货等)
- 缺货批次(样品/销售等)
- 库存转移批次(将库存从A仓库转移到B仓库)
我计划为进/出/转移做一个交易表。所以我的产品&属性&条形码表不应该有数量字段,对吧?
以下是我的业务规则
1 product, 0 or many attributes;
1 attributes, 1 to many product
1 product, 0 to many barcode;
1 barcode, 1 product
1 attributes, 0 to many barcode;
1 barcode, 1 attributes
1 barcode, 0 to many quantity
我应该为此创建多少表?
我的桌子设计是这样的:
- warehouse (warehouse id[pk])
- product (product id[pk])
- attributes (attribute id[pk])
- product attributes (product id[pfk], attribute id[pfk])
- barcode (barcode id[pk])
- stock in batch (sib_id[pk], warehouse id[fk])
- stock in batch item (item_id[pk], sib_id[fk], product id[fk], qty, unit cost)
- stock in batch item attributes (item_id[pfk], attribute id[pfk])
- stock in batch item barcode (item_id[pfk], barcode id[pfk])
- stock out batch (sob_id[pk], warehouse id[fk])
- stock out batch item (item_id[pk], sob_id[fk], product id[fk], qty, unit cost)
- stock out batch item attributes (item_id[pfk], attribute id[pfk])
- stock out batch item barcode (item_id[pfk], barcode id[pfk])
- stock transfer batch (stb_id[pk], from warehouse id[fk], to warehouse id[fk])
- stock transfer batch item (item_id[pk], stb_id[fk], product id[fk], qty, unit cost)
- stock transfer batch item attributes (item_id[pfk], attribute id[pfk])
- stock transfer batch item barcode (item_id[pfk], barcode id[pfk])
我应该有 qty 字段吗?我应该把数量放在哪里?
我正在考虑在进货和减货交易中使用 sum() 来获取产品数量,但是在考虑到我太复杂并停留在此处之后。
我也在考虑使用 qty 字段,对于每笔交易,它都会自动调整 qty 字段,但担心可能最终的数量与交易计算不符。
请指教。
您的总和想法在一定程度上有效,然后由于可扩展性问题,每当您从库存中添加或删除商品时,您最终都会遇到缓慢的交易。
我为类似问题所做的方法是维护一个运行总表,这适用于您的情况。
我也有一个用于会计目的的审计表,它具有原始值,以防会计师紧张,但运行总计选项更具可扩展性。