我正在为不同项目的库存创建一个数据库。例如,我可能有汽车、发动机和化油器。
对于每种类型的项目,都有唯一的属性,有些是唯一标识(AKA“序列化”)项目,有些不是。
属性可以是,例如:
汽车
- 序列号
- 颜色
- 门数
- 传输类型
引擎
- 序列号
- 气缸数
- 移位
化油器(未序列化)
- 桶数
- 制造商
当然,我需要能够确定我拥有的每种类型的物品有多少。我不想为每种类型创建一个表,因为随着我开始携带变速器、轮胎、收音机、方向盘等物品类型会增加。
我见过的一种处理这种异构库存的方法是有一张item
桌子,但也有一张attribute
桌子。它看起来像这样:
**表:项目**
- (键)itemType(链接到包含“automobile”、“engine”等的 itemTypes 表。
- (键)序列号
- (所有 itemTypes 共有的其他字段)
**表:属性**
- (key) 属性类型(链接到属性类型表,例如“颜色”等)
- (key) itemType (链接到item中的 itemType )
- (键)序列号(链接到项目中的序列号)
- attributeValue(如果 attributeType 是“color”,这可能是“red”、“blue”等)
这提出的一个挑战是处理非序列化项目。虽然通过这种结构很容易确定我有 35 个发动机,但我如何表示我有 52 个化油器?我不想序列化它们。
当然,这并不是为异构库存构建数据库的唯一方法。你用过什么,或者你有什么其他的想法?
谢谢你的帮助。