使用子类别创建 postgresql 数据库的适当方法?
Appropriate way to creating postgresql database with subcategories?
我在使用数据库方面还很陌生。
我需要向现有数据库添加一个新的 table。
问题是我需要向数据库中添加 200 多个 Material,例如 Paint、Timber、Iron 等。
每个 material 有 4 个值。 (重量、密度、电导率、成本)
部分 material 有子类别。例如:木材有不同的 sub_types(橡木、松木、水曲柳等)
所有这些 sub_types 都有不同的(重量、密度、电导率、成本)
有些 Material 没有子类别,例如:(PVC 框)。
所以我的问题基本上是,将所有这些 material 放在同一个 Table 中是否合适。
或者我应该为每个 Material 创建一个 table 因为其中一些有 sub_categories 而有些没有?
所以基本上我担心的是,如果一些 material 有 sub_categories 而其他人没有,因为空格,会对数据库造成不利影响。
下面是来自 .csv
的 table header 的屏幕截图,子类别标记为 material_type。
规范化您的数据库将为您省去很多麻烦。
我假设 "generic wood category" 没有(重量、密度、电导率、成本)属性,因为木材的类型未知。这些参数适用于 Oak、Pine 等
我会使用 materials_category table:
category_id PK
category_name
和 materials table:
category_id Foreign Key
material_id PK
material_name
material_weight ... etc
对于不属于任何类别的 material,您可以创建一个 "everything else" 类别,这样每个 material 总是属于一个类别,这应该使其余代码简单多了。
我在使用数据库方面还很陌生。
我需要向现有数据库添加一个新的 table。
问题是我需要向数据库中添加 200 多个 Material,例如 Paint、Timber、Iron 等。
每个 material 有 4 个值。 (重量、密度、电导率、成本)
部分 material 有子类别。例如:木材有不同的 sub_types(橡木、松木、水曲柳等)
所有这些 sub_types 都有不同的(重量、密度、电导率、成本)
有些 Material 没有子类别,例如:(PVC 框)。
所以我的问题基本上是,将所有这些 material 放在同一个 Table 中是否合适。 或者我应该为每个 Material 创建一个 table 因为其中一些有 sub_categories 而有些没有?
所以基本上我担心的是,如果一些 material 有 sub_categories 而其他人没有,因为空格,会对数据库造成不利影响。
下面是来自 .csv
的 table header 的屏幕截图,子类别标记为 material_type。
规范化您的数据库将为您省去很多麻烦。
我假设 "generic wood category" 没有(重量、密度、电导率、成本)属性,因为木材的类型未知。这些参数适用于 Oak、Pine 等
我会使用 materials_category table:
category_id PK
category_name
和 materials table:
category_id Foreign Key
material_id PK
material_name
material_weight ... etc
对于不属于任何类别的 material,您可以创建一个 "everything else" 类别,这样每个 material 总是属于一个类别,这应该使其余代码简单多了。