何时应该在现有数据库中创建新数据库而不是新表?

时间:2011-07-14 17:35:55

标签: mysql database database-design

何时应该在现有数据库中创建新数据库而不是新表?

例如,如果我有一个网站并且我想要添加一个论坛,我应该将论坛表添加到现有数据库中,还是应该创建一个新数据库并在那里添加论坛表?

换句话说,何时将新表添加到新数据库而不是现有数据库是否有意义?

谢谢。

4 个答案:

答案 0 :(得分:1)

通常在语法上更容易加入同一数据库中的表。这真的是一个逻辑分组的问题。

对于网站上的论坛,如果您有共享的“用户”表或类似的表,您可能希望将事物保存在同一个数据库中,因为它可以使外键约束和加入更简单。< / p>

您可以设计应用程序,以便每个表都在一个单独的数据库中。如果这看起来很荒谬,那么问问自己为什么它看起来很荒谬,你可能会想出一个关于什么表格属于一起的启发式方法。然后,您可以将该启发式应用于未来的添加。

如果您正在谈论第三方数据库,那么这个答案并不适用。对于需要自己的数据库的第三方产品,我认为进入单独的数据库几乎总是正确的呼叫。

答案 1 :(得分:0)

我会假设你真的在谈论像PHPBB这样的论坛软件,或者其他什么 - 但这个建议仍然普遍适用。

您希望尽可能将每个独立的软件(每个论坛,博客等)放在自己的数据库中。一个好的经验法则是,如果必须安装它,请将其放在自己的数据库中。

许多软件包支持安装到单个数据库中的原因是早期共享托管行业的工件,其中托管帐户将被任意限制为单个MySQL数据库,即使数据库的数量或多或少与性能(嗯,这是一种简化 - 将所有内容放在一个数据库中可能会在某些情况下对性能产生负面影响,但我们不会深入研究。)

即使没有理由将所有内容安装到单个数据库中,除非您的主机仅为您提供单个数据库。

答案 2 :(得分:0)

如果项目完全分开,则它们可以位于单独的数据库中,也可以位于同一个数据库中。将它们分开的一些考虑因素可能包括它们是否需要具有不同的恢复模型或不同的分区规则,或者它们是否应该位于不同的物理硬件上。

数据仓库通常位于完全独立的数据库中,通常位于不同的服务器上,并具有将记录移动到仓库的导入过程。这是因为从数据仓库运行的复杂报告查询可能会干扰事务数据库用户的日常插入/更新删除。

如果数据相关,那么通常最好将它们保存在同一个数据库中。这使您可以通过具有外键约束来轻松保留数据完整性。在SQL Server中(我确定其他主要数据库在某种程度上具有某种等效性),您可以在数据库中使用模式来保持组合在一起的东西。所以我的所有论坛表都在论坛架构中,所有与用户相关的表格都在用户架构等中。

答案 3 :(得分:-1)

这只是含义的问题。

数据库有一些含义:某些陈述或目的或定义或现有原因。

如果没有“含义”,则将所有数据放入一个数据库,直到意义被整理出来。

  

创建一个新数据库并在那里添加论坛表?

从不。将某些内容分成多个数据库。数据库背后的要点是将各个部分放在一起,这样您就可以在一个数据库中处理相关的事情。