你什么时候有太多桌子?

时间:2010-02-04 23:18:23

标签: database database-design

我和我的两个同事正在建立一个系统来处理各种水文和相关的事情。它有很多要求,并且有很多表格。

我们正在处理在此范围内完成的各种抽样(水文学),我们正试图找到一种方法,以较少的痛苦方式完成。

有时我们需要将所有抽样结合在一起,而我开始认为我们的数据库设计过于复杂。

您是否或何时知道自己过度设计数据库?当然,我们正在考虑许多规范表格规则和其他良好做法,但是当可以放弃其中一条规则时,例如没有正常化的东西?

您对此有何看法?

4 个答案:

答案 0 :(得分:14)

简答

你不能,担心其他事情。

长答案

这听起来像premature optimization的另一种形式。 (YAFPO?)

您应该使用third normal form(3NF)设计架构。设计完成后,您应该使用数据填充表格并开始分析。

如果某个特定查询的代价太高,那么您应该根据具体情况调查denormalization

技术答案(对于那些不可避免地反对的挑剔者:“你不能”)

根据您选择的RDBMS和/或存储引擎,您将在某个时刻达到限制。可能的天花板将是内存消耗或打开文件描述符。

答案 1 :(得分:3)

我们有一个拥有数百个表的系统 - 这没什么大不了的,只是在数据库中存储了很多不同的东西。

答案 2 :(得分:3)

“你什么时候有太多桌子?”

在逻辑设计层面,正确答案是“从不”。

在物理设计层面(只要“有一张桌子”实际上指的是与物理设计有关的一些概念),正确的答案是“如果你需要做什么的查询,给定的限制是你正在使用的DBMS导致性能低得令人无法接受。“。

答案 3 :(得分:0)

我们的系统中也有大量的表格。我们所做的是将数据库规范化到一个好点,然后创建一些视图,其中包含我们系统最常见的表使用需求。这样的事情也可以帮助你。