哪个表是正确的数据库设计?

时间:2016-12-27 17:46:30

标签: entity-framework linq database-design

选项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 个答案:

答案 0 :(得分:2)

老实说,这两者都不是长期和最佳的选择。可维护性,但如果我必须选择我选择选项2。

由于您在国家/地区实体与风险实体之间存在多对多的关系,因此我会将信息分开一些,并按照这样做。

国家

Unable to parse at line 20 (near "    vendor/bin/phpunit --coverage-clover clover.xml ;").

风险

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

CountryRisk

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

答案 1 :(得分:1)

选项2。

如果每个国家总是存在健康风险,市场风险和技术风险 - 您永远不会冒重复数据的风险。数据库从不重复数据。

老实说,我认为选项1对选项2没有任何好处。