2017-09-22 12 views
0

私はデータベースを扱うのがとても新しいです。サブカテゴリを使用してpostgresqlデータベースを作成する適切な方法は?

私は既存のデータベースに新しいテーブルを追加する必要があります。

私は、ペイント、ティンバー、アイアンなど200以上のマテリアルをデータベースに追加する必要があります。

すべての素材には4つの値があります。 (重量、密度、導電率、コスト)

一部の品目にはサブカテゴリがあります。例えば:木材は異なるsub_types(オーク、パイン、灰、等)

これらすべてのsub_types持ちを有する異なる(重量、密度、導電率、コスト)

材料のいくつかは、例えば、何のサブカテゴリーを有していません:(PVCフレーム)。

私の質問は基本的に、これらの資料をすべて同じテーブルに入れるのが適切かどうかです。 サブクラスを持つものもあればサブクラスを持つものもあるため、それぞれのマテリアルに対してテーブルを作成する必要がありますか?

基本的に私の心配は、いくつかの材料にはsub_categoriesがあり、空ではないためにデータベースに悪影響を及ぼさないものがあります。

以下は.csvの表ヘッダーのスクリーンショットです。サブカテゴリはmaterial_typeとしてマークされています。

enter image description here

答えて

1

データベースがラインの下のあなたの頭痛の多くが保存されます正規化。

木の種類が不明なので、「一般的な木材カテゴリ」には(重量、密度、導電率、コスト)属性がないという前提にします。これらのパラメータは、などオーク、パインにも適用される

私はmaterials_categoryテーブルを使用したい:

category_id PK 
category_name 

や材料表:に属していない材料については

category_id Foreign Key 
material_id PK 
material_name 
material_weight ... etc 

をどのカテゴリでも、 "すべての他の"カテゴリを作成することができます。したがって、すべての素材は常にカテゴリに属します。これによりコードの残りの部分がより簡単になります。

+0

ありがとう、これは良いアプローチと思われます。主キーと外部キーはどのような列にする必要がありますか。私はテーブルが "リンク"しているので、それをする必要がありますか? – Slowboy

+0

はい、外部キーが必要です。私はPKとFKのメモを列に入れました。 – peufeu

+1

ありがとうございます – Slowboy

関連する問題