物料信息数据表的设计

时间:2021-02-05 12:14:42
我现在遇到这样一个需求:
1、一个公司,有很多物料,需要将物料信息保存在数据库里
2、物料分很多种类,每种物料属性项不与样,比如A种物料有长度,高度,体积等属性;B种物料有深度,直径,重量等属性;
3、物料种类很多,有几百种,且不同种类的物料属性项差异也比较大,有的物料只有一两项属性,有的则有几十项。
   我现在有两种思路,
一是每种物料设计一张表,物料的属性项作字段,这样设计的缺陷是表会非常非常多;
二是用一张表保存所有种类的物料,这样表的字段要取所有物料属性项的全集,这样字段会非常非常多;
  感觉这两种都不好,本人数据库新手,请经验丰富的高手帮忙给个思路吧?

7 个解决方案

#1


1、物料类型(物品类型ID,类型说明)
2、属性列表(属性ID,属性名称)
3、物料类型与属性匹配表(物品类型ID,属性ID,属性值,属性单位)
4、详细物品表(物品ID,物品名称,物品类型ID)

参考

#2


补充,如果包含bom拆分的话,参考 bom结构。 

#3


我觉得采用第二种方式吧,不过得修改一下,就是不要设计那么多的字段,而是改成这样:

物料属性表:
物料属性id ,属性名称
1          ,长度
2          ,高度

物料属性对应表:
自增id,物料id,物料属性id,属性值
1     ,1     ,1         ,100

#4


其实就是,增加了一个物料 和他的属性 对应关系表。

因为不同的物料,会有不同的属性,不仅属性个数不同,而且属性的种类也不同,这个时候,就需要单独新建一个对应关系表。

也就是一个物料,对应了哪些属性,每个属性的名称,以及属性值。

这样就可以不用设置那么多的字段了。

#5


引用 楼主 hhxx039 的回复:
我现在遇到这样一个需求:
1、一个公司,有很多物料,需要将物料信息保存在数据库里
2、物料分很多种类,每种物料属性项不与样,比如A种物料有长度,高度,体积等属性;B种物料有深度,直径,重量等属性;
3、物料种类很多,有几百种,且不同种类的物料属性项差异也比较大,有的物料只有一两项属性,有的则有几十项。
   我现在有两种思路,
一是每种物料设计一张表,物料的属性项作字段,这样设计的缺陷是表会非常非常多;
二是用一张表保存所有种类的物料,这样表的字段要取所有物料属性项的全集,这样字段会非常非常多;
  感觉这两种都不好,本人数据库新手,请经验丰富的高手帮忙给个思路吧?
如果种类不定,可以考虑用XML来存储属性

#6


和1楼类似,谢谢了

#7


引用 1 楼 OrchidCat 的回复:
1、物料类型(物品类型ID,类型说明)
2、属性列表(属性ID,属性名称)
3、物料类型与属性匹配表(物品类型ID,属性ID,属性值,属性单位)
4、详细物品表(物品ID,物品名称,物品类型ID)

参考

很有帮助,谢谢

#1


1、物料类型(物品类型ID,类型说明)
2、属性列表(属性ID,属性名称)
3、物料类型与属性匹配表(物品类型ID,属性ID,属性值,属性单位)
4、详细物品表(物品ID,物品名称,物品类型ID)

参考

#2


补充,如果包含bom拆分的话,参考 bom结构。 

#3


我觉得采用第二种方式吧,不过得修改一下,就是不要设计那么多的字段,而是改成这样:

物料属性表:
物料属性id ,属性名称
1          ,长度
2          ,高度

物料属性对应表:
自增id,物料id,物料属性id,属性值
1     ,1     ,1         ,100

#4


其实就是,增加了一个物料 和他的属性 对应关系表。

因为不同的物料,会有不同的属性,不仅属性个数不同,而且属性的种类也不同,这个时候,就需要单独新建一个对应关系表。

也就是一个物料,对应了哪些属性,每个属性的名称,以及属性值。

这样就可以不用设置那么多的字段了。

#5


引用 楼主 hhxx039 的回复:
我现在遇到这样一个需求:
1、一个公司,有很多物料,需要将物料信息保存在数据库里
2、物料分很多种类,每种物料属性项不与样,比如A种物料有长度,高度,体积等属性;B种物料有深度,直径,重量等属性;
3、物料种类很多,有几百种,且不同种类的物料属性项差异也比较大,有的物料只有一两项属性,有的则有几十项。
   我现在有两种思路,
一是每种物料设计一张表,物料的属性项作字段,这样设计的缺陷是表会非常非常多;
二是用一张表保存所有种类的物料,这样表的字段要取所有物料属性项的全集,这样字段会非常非常多;
  感觉这两种都不好,本人数据库新手,请经验丰富的高手帮忙给个思路吧?
如果种类不定,可以考虑用XML来存储属性

#6


和1楼类似,谢谢了

#7


引用 1 楼 OrchidCat 的回复:
1、物料类型(物品类型ID,类型说明)
2、属性列表(属性ID,属性名称)
3、物料类型与属性匹配表(物品类型ID,属性ID,属性值,属性单位)
4、详细物品表(物品ID,物品名称,物品类型ID)

参考

很有帮助,谢谢