我无法决定是否对数据库的这一部分进行规范化或非规范化:
我列出了约50种在给定样本点存在或不存在的物种。这50个将来可能会扩展到75个,但不会更多。此数据库的主要用途是生成报告。因此,如果在给定区域内有10个站点,那么平均问题将是:我们在多少个站点中检测到物种?
我应该创建50个t / f位列:
网站,a,b,c,d,e ... n
1,t,f,t,f,t,t ....
2,f,t,t,f,t,f .....
或者我应该创建一对多表:
1 a
1 c ...
2 b
2 c ...
我知道趋势是规范化,70列对其他用户来说可能令人生畏,但我真的很喜欢从非规范化版本中提取数据。在这种情况下,一个人真的更好吗?
答案 0 :(得分:0)
50柱解决方案的优势:
一对多解决方案的优点:
只需输入包含物种编号的新记录,即可在不重新设计数据库的情况下增加物种数量。
访问包含特定物种的所有样本点将比50列设计更容易。
在这几十年的交易中,我一般都对这些要求持谨慎态度,并且未来可能会扩展到75,但不会更多"。但是如果物种的增加并不经常发生,并且如果你有时间停止你的申请并在那种情况下重组你的桌子,那么这个论点就不会太强大。但是,我也要警惕仅按物种查询数据的限制。在许多情况下,最终会出现相反方向的需要。