2016-12-27 1 views
0

オプション1:どのテーブルが正しいデータベース設計ですか?

Country  | Risk Category | Value 
USA   |  Health  | 0.75 
USA   |  Market  | 0.66 
USA   | Technology | 0.35 

オプション2:

Country  | Health Risk | Market Risk | Technology Risk 
USA   |  0.75 |  0.66 |  0.35 

オプション1:が動的ときに変更列を追加することなく、追加される新しいリスク分類を可能にしますLINQでうまく動作しないので、私が探している値を見つけるためにアルゴリズムを実行する必要があります。

オプション2:は、エンティティフレームワークですべてが足かせになっているので簡単に操作できます。ただし、新しいカテゴリを追加するたびにデータベースを変更する必要があります。また、200以上の列が存在する可能性があります。

どのオプションが長期的な成功と保守性に最適ですか?

答えて

2

正直オプションの上にオプション1に何らかの利益を見ることができない、長期的&保守のために最適どちらもありませんが、私が選択しなければならなかっただろう場合、私はオプション2のために行くだろう。

あなたは国のエンティティとリスクエンティティとの関係が多岐にわたっているので、情報をもう少し分けて、このようにします。

ID   |  Name | 
1   |  USA  |  
2   | CANADA |  

リスク

Id  |  Name  | 
1   |  Health | 
2   |  Market | 
3   | Technology | 

カントリーリスク

CountryId | RiskId | Value | 
1   |  1 | 0.75 | 
1   |  2 | 0.66 | 
1   |  3 | 0.35 | 
1

オプション2

すべての国は、常に健康リスク、市場リスクと技術リスクを持っているとしている場合 - あなたは、データを繰り返す危険にさらすことは決してないだろう。データベース決してデータを繰り返す必要があります。

私は正直2.

+0

おかげで、私は同意します!ボーナスとして限られたデータベース設計経験を持つジュニアソフトウェア開発者は、上級DBAをどのように納得させるでしょうか。オプション2の代わりに、オプション1のデザインの代わりに? – HelloWorld1010

+0

私はいくつかの研究をして、人々が似たような経験をしているかどうかを確かめたいと思います。私の経験では、やや劣ったソフトウェア開発者であり、上級開発者に何か間違ったことを伝えようとする上りの戦いと戦うことになるでしょう。 :) –

+0

アドバイスをいただきありがとうございます。私はあなたと同じ経験をしてきた – HelloWorld1010

関連する問題