使用子类别创建postgresql数据库的适当方法?

时间:2017-09-22 16:31:39

标签: database postgresql csv database-design workflow

我很擅长使用数据库。

我需要向现有数据库添加一个新表。

问题是我需要在数据库中添加200多种材质,如Paint,Timber,Iron等。

每种材料都有4个值。 (重量,密度,电导率,成本)

某些材料有子类别。例如:木材有不同的子类型(橡木,松木,灰等)

所有这些子类型都有不同(重量,密度,电导率,成本)

某些材料没有子类别,例如:(PVC Framed)。

所以我的问题基本上是,将所有这些材料放在同一张表中是否合适。 或者我应该为每个材料制作一个表格,因为其中一些有sub_categories而有些没有?

所以基本上我担心的是,如果某些材料有sub_categories而其他材料不会对数据库造成坏处,因为空格。

以下是来自.csv的表标题的屏幕截图,子类别被标记为material_type。

enter image description here

1 个答案:

答案 0 :(得分:1)

规范化数据库将为您节省大量的麻烦。

我假设"仿木类"没有(重量,密度,电导率,成本)属性,因为木材的类型是未知的。这些参数适用于Oak,Pine等。

我使用的是material_category表:

category_id   PK
category_name

和材料表:

category_id  Foreign Key
material_id  PK
material_name
material_weight ... etc

对于不属于任何类别的资料,您可以创建一个"其他所有内容"因此,每个材料总是属于一个类别,这应该使代码的其余部分更加简单。