2013-05-02 55 views
0

数据库设计:数据库表设计为只读值

我有两个值Tsunami_Indicators:

  1. 预警
  2. 晚警告

基于这两个值有许多Tsunami_Rescue_Activities如:

Early Warning------Build Wall 
Early Warning------Release dock ships 
Early Warning------Alert fishermen 
Early Warning-----etc. 

Late Warning-------Provide radioactive foolproof masks 
Late Warning-------Evacuate coastline 
Late Warning-------Deploy airforce 
Late Warning-------etc. 

所以我应该保持Tsunami_Indicators的两个值作为Tsunami_Rescue_Activities表中的下拉列表或创建一个单独的表作为Tsunami_Indicators?

我觉得创建晚警告和预警单独的表Tsunami_Indicators并保持其参考ID在该表Tsunami_Rescue_Activities。

但后来有一个疑问,如果这两个只读值正在一台值得权衡?

请指教。正常化的

规则说“从来没有在一个元组的任何列清单”,但无疑是“是否有例外情况?”

+0

我感到有点困惑**“下拉列表” **在数据库环境。你在使用什么类型的数据库? – luksch 2013-05-02 09:34:15

+0

@luksch这是一个Oracle数据库和应用方面,我们正在使用Hibernate的ORM – dkr 2013-05-02 09:35:35

+0

@luksch:标准化的规则说“从来没有在一个元组的任何列清单”,但怀疑是“有此规则的例外?” – dkr 2013-05-02 09:37:36

回答

0

当你有一个静态码表(有人可能会说查找表),这是值得把它放在一个数据库,并把它正常化3NF。即使是最静态的查找表也至少有一点变化的风险。

如果当这种变化发生它是通过使比通过改变代码(也可能有重新分配的代码,如果不是基于Web)数据库条目就好办了。