ER模型中“best-before-date”(最佳食用日期)的存储位置咨询
肉店ER模型设计疑问解答
一、保质期(best-before-date)的存储位置
绝对不能放在Produkt(产品)实体里——Produkt代表产品品类(比如“冰鲜牛腩”“常温可乐”),属于抽象的商品定义,同一品类每次进货的保质期必然不同,把批次级属性绑定到品类上完全不合理。
也不建议直接放在Lager(仓库)实体里——仓库是物理存储空间,本身和保质期没有直接关联。正确的做法是新增一个库存批次实体(比如命名为Lagerbestand),这个实体关联Produkt(对应品类)、Lager(存储仓库),同时存储best-before-date、入库数量、入库日期、批次号等批次专属属性。
二、仓库(Lager)实体的存在意义
仓库的核心价值是管理存储资源,和保质期无关,它的作用包括:
- 记录仓库物理属性:比如位置、总容量、存储分区(冷藏/冷冻/常温区)、适配存储的商品类型(肉类需冷藏,饮品可常温)
- 跟踪库存批次的存储归属:明确哪个批次的商品放在哪个仓库/区域,方便盘点、拣货
- 管理仓库出入库规则:比如哪个仓库允许哪些类型的补货订单入库,哪些订单从哪个仓库出库
三、是否过度思考?问题出在哪?
不算过度思考,但核心问题是混淆了“产品品类”和“库存批次”的边界:你把批次级的动态属性(保质期)和品类级的静态属性(产品名称、规格、默认供应商)混为一谈,同时对仓库实体的定位出现偏差——仓库是空间管理载体,不是库存批次的属性容器。
现有ER图说明:补货订单(Bestellung)关联供应商(Lieferant)与产品(Produkt);仓库(Lager)与产品(Produkt)存在关联关系。
内容的提问来源于stack exchange,提问作者Pjaks
相关产品推荐
相关产品推荐

