我和我的两个同事正在建立一个系统来处理各种水文和相关的事情。它有很多要求,并且有很多表格。
我们正在处理在此范围内完成的各种抽样(水文学),我们正试图找到一种方法,以较少的痛苦方式完成。
有时我们需要将所有抽样结合在一起,而我开始认为我们的数据库设计过于复杂。
您是否或何时知道自己过度设计数据库?当然,我们正在考虑许多规范表格规则和其他良好做法,但是当可以放弃其中一条规则时,例如没有正常化的东西?
您对此有何看法?
答案 0 :(得分:14)
简答
你不能,担心其他事情。
长答案
这听起来像premature optimization的另一种形式。 (YAFPO?)
您应该使用third normal form(3NF)设计架构。设计完成后,您应该使用数据填充表格并开始分析。
如果某个特定查询的代价太高,那么您应该根据具体情况调查denormalization。
技术答案(对于那些不可避免地反对的挑剔者:“你不能”)
根据您选择的RDBMS和/或存储引擎,您将在某个时刻达到限制。可能的天花板将是内存消耗或打开文件描述符。
答案 1 :(得分:3)
我们有一个拥有数百个表的系统 - 这没什么大不了的,只是在数据库中存储了很多不同的东西。
答案 2 :(得分:3)
“你什么时候有太多桌子?”
在逻辑设计层面,正确答案是“从不”。
在物理设计层面(只要“有一张桌子”实际上指的是与物理设计有关的一些概念),正确的答案是“如果你需要做什么的查询,给定的限制是你正在使用的DBMS导致性能低得令人无法接受。“。
答案 3 :(得分:0)
我们的系统中也有大量的表格。我们所做的是将数据库规范化到一个好点,然后创建一些视图,其中包含我们系统最常见的表使用需求。这样的事情也可以帮助你。