1、一个公司,有很多物料,需要将物料信息保存在数据库里
2、物料分很多种类,每种物料属性项不与样,比如A种物料有长度,高度,体积等属性;B种物料有深度,直径,重量等属性;
3、物料种类很多,有几百种,且不同种类的物料属性项差异也比较大,有的物料只有一两项属性,有的则有几十项。
我现在有两种思路,
一是每种物料设计一张表,物料的属性项作字段,这样设计的缺陷是表会非常非常多;
二是用一张表保存所有种类的物料,这样表的字段要取所有物料属性项的全集,这样字段会非常非常多;
感觉这两种都不好,本人数据库新手,请经验丰富的高手帮忙给个思路吧?
7 个解决方案
#1
1、物料类型(物品类型ID,类型说明)
2、属性列表(属性ID,属性名称)
3、物料类型与属性匹配表(物品类型ID,属性ID,属性值,属性单位)
4、详细物品表(物品ID,物品名称,物品类型ID)
参考
2、属性列表(属性ID,属性名称)
3、物料类型与属性匹配表(物品类型ID,属性ID,属性值,属性单位)
4、详细物品表(物品ID,物品名称,物品类型ID)
参考
#3
我觉得采用第二种方式吧,不过得修改一下,就是不要设计那么多的字段,而是改成这样:
物料属性表:
物料属性id ,属性名称
1 ,长度
2 ,高度
物料属性对应表:
自增id,物料id,物料属性id,属性值
1 ,1 ,1 ,100
物料属性表:
物料属性id ,属性名称
1 ,长度
2 ,高度
物料属性对应表:
自增id,物料id,物料属性id,属性值
1 ,1 ,1 ,100
#4
其实就是,增加了一个物料 和他的属性 对应关系表。
因为不同的物料,会有不同的属性,不仅属性个数不同,而且属性的种类也不同,这个时候,就需要单独新建一个对应关系表。
也就是一个物料,对应了哪些属性,每个属性的名称,以及属性值。
这样就可以不用设置那么多的字段了。
因为不同的物料,会有不同的属性,不仅属性个数不同,而且属性的种类也不同,这个时候,就需要单独新建一个对应关系表。
也就是一个物料,对应了哪些属性,每个属性的名称,以及属性值。
这样就可以不用设置那么多的字段了。
#5
如果种类不定,可以考虑用XML来存储属性
#6
和1楼类似,谢谢了
#7
很有帮助,谢谢
#1
1、物料类型(物品类型ID,类型说明)
2、属性列表(属性ID,属性名称)
3、物料类型与属性匹配表(物品类型ID,属性ID,属性值,属性单位)
4、详细物品表(物品ID,物品名称,物品类型ID)
参考
2、属性列表(属性ID,属性名称)
3、物料类型与属性匹配表(物品类型ID,属性ID,属性值,属性单位)
4、详细物品表(物品ID,物品名称,物品类型ID)
参考
#2
补充,如果包含bom拆分的话,参考
bom结构。
#3
我觉得采用第二种方式吧,不过得修改一下,就是不要设计那么多的字段,而是改成这样:
物料属性表:
物料属性id ,属性名称
1 ,长度
2 ,高度
物料属性对应表:
自增id,物料id,物料属性id,属性值
1 ,1 ,1 ,100
物料属性表:
物料属性id ,属性名称
1 ,长度
2 ,高度
物料属性对应表:
自增id,物料id,物料属性id,属性值
1 ,1 ,1 ,100
#4
其实就是,增加了一个物料 和他的属性 对应关系表。
因为不同的物料,会有不同的属性,不仅属性个数不同,而且属性的种类也不同,这个时候,就需要单独新建一个对应关系表。
也就是一个物料,对应了哪些属性,每个属性的名称,以及属性值。
这样就可以不用设置那么多的字段了。
因为不同的物料,会有不同的属性,不仅属性个数不同,而且属性的种类也不同,这个时候,就需要单独新建一个对应关系表。
也就是一个物料,对应了哪些属性,每个属性的名称,以及属性值。
这样就可以不用设置那么多的字段了。
#5
如果种类不定,可以考虑用XML来存储属性
#6
和1楼类似,谢谢了
#7
很有帮助,谢谢