Database design 如何为不同项目的库存构建数据库

Database design 如何为不同项目的库存构建数据库,database-design,inventory,Database Design,Inventory,我正在为不同项目的库存创建一个数据库。例如,我可能有汽车、发动机和化油器 对于每种类型的项,都有唯一的属性,有些是唯一标识的(也称为“序列化”)项,有些不是 属性可以是,例如: 汽车 序列号 颜色 门数 传输类型 发动机 序列号 气缸数 位移 化油器(未序列化) 巴雷尔计数 制造商 当然,我需要能够确定我有多少每种类型的项目。我不想为每种类型创建一个表,因为随着我开始携带变速箱、轮胎、收音机、方向盘等,项目类型将增加 我见过的一种处理这种异构库存的方法是,有一个项目表,但也有一个属性

我正在为不同项目的库存创建一个数据库。例如,我可能有汽车、发动机和化油器

对于每种类型的项,都有唯一的属性,有些是唯一标识的(也称为“序列化”)项,有些不是

属性可以是,例如:

汽车

  • 序列号
  • 颜色
  • 门数
  • 传输类型
发动机

  • 序列号
  • 气缸数
  • 位移
化油器(未序列化)

  • 巴雷尔计数
  • 制造商
当然,我需要能够确定我有多少每种类型的项目。我不想为每种类型创建一个表,因为随着我开始携带变速箱、轮胎、收音机、方向盘等,项目类型将增加

我见过的一种处理这种异构库存的方法是,有一个
项目
表,但也有一个
属性
表。看起来是这样的:

**表:项目**

  • (键)itemType(链接到包括“汽车”、“发动机”等的itemType表
  • (键)序列号
  • (所有ItemType通用的其他字段)
**表:属性**

  • (键)属性类型(链接到属性类型表,如“颜色”等)
  • (键)itemType(链接到item中的itemType)
  • (键)serialNumber(链接到项中的serialNumber)
  • attributeValue(如果attributeType为“颜色”,则可能为“红色”、“蓝色”等)
本文提出的一个挑战是处理非序列化项。虽然使用此结构很容易确定我有35个发动机,但如何表示我有52个化油器?我不想序列化它们

当然,这不是为异构库存构建数据库的唯一方法。您使用了什么,或者您有什么其他想法

谢谢您的帮助。

尝试以下表格设置:

项目类型表:

  • id主自动索引
  • 名字
项目表:

  • id主自动索引
  • 类型(fkey到项目类型)
属性类型:

  • id主自动索引
  • 名字
值表:

  • id主自动索引
  • 项目(fkey to items)
  • 类型(fkey到属性类型)
  • 价值观
因此,如果您想存储引擎,您需要将类型“engine”添加到types表中,然后添加一个单独的项,然后可以为“serial”和其他属性添加值

如果您想存储您的化油器,您可以添加一个称为“化油器”的类型,然后创建一个实例,然后为“数量”=53创建“值”条目


希望这是有意义的

谢谢。这很像我发布的,但我喜欢你把
序列号
变成另一个属性的想法。我不喜欢的一件事是将
数量
存储为一个属性,因为这个数量可能在不同的位置/箱子。我想这只是发挥了我处理inve的作用很多地方。不过,谢谢,这很有帮助。此外,问题仍然存在,我有8个四桶埃德洛克碳水化合物,35个双桶Schebler碳水化合物,和10个双桶埃德洛克碳水化合物。这里以属性为中心的方法几乎认为每件库存都必须有一个
项目
记录。好吧,也许吧e对于双管Edelbrock碳水化合物,需要有一个itemType,对于其他类型,需要有一个itemType。基本上,itemType将保存所有零件号或SKU。