4

我正在设计一个用于信息系统的数据库。它将包含有关客户、员工和物品的数据。不用说,仅客户部分就有大约十几张桌子。

我想知道将这些数据拆分到多个数据库中然后在它们之间进行引用是否是不好的做法,或者是否将它们全部保存在同一个数据库中会更好。

因此,与其拥有一个带有两打表(例如,等)的单个数据库(例如Company_DB ) ,不如将两个数据库(Company_Cus、Company_Emp)分别放在一个和另一个中?CUS_DETAILSEMP_DETAILSCUS_DETAILSEMP_DETAILS

问候。

4

4 回答 4

5

“良好实践”是那些让我们让我们的偏见听起来比实际更重要的短语之一......

通常,您希望将属于一起的事物存储在一起。如果你有一个单一的信息系统,它为企业运行一切,并且你管理的实体相互关联——客户有订单,订单有销售人员和产品——你可以说它们属于同一类。另一方面,如果您注意到您的表“岛”并没有真正链接到任何其他表,那么它们可能不属于一起。

从可维护性的角度来看,管理更多数据库意味着需要管理更多备份、更多维护例程和更多安全配置文件。

从可读性的角度来看,在不同的数据库中寻找您感兴趣的表可能是一件坏事 - 例如,“客户”和“员工”之间存在多对多连接表 - 例如销售团队——那张桌子住在哪里?在“客户”数据库,还是“员工”?

从可靠性的角度来看,我不确定您是否可以跨数据库强制执行外键约束。

我真的想不出这样做有什么好处——所以我会说这是个坏主意。

于 2013-02-18T12:35:48.020 回答
2

我认为最好将所有数据放在一个数据库中,而不是将数据分散在多个数据库中。

就我个人而言,我认为在不同数据库中分离信息的唯一原因是在一个平台上拥有彼此完全不同的系统或子系统。

无论您使用多少个数据库,数据量都是相同的。

于 2013-02-18T12:18:40.520 回答
1

我会选择单个数据库,除非真的没有必要拆分为多个数据源,否则单个数据库不限于十几个表。

管理多个资源总是会让人头疼。

于 2013-02-18T12:18:42.643 回答
0

您是否将数据库存储在同一个磁盘上?如果是这样,将其拆分到不同的数据库中根本不会给您带来任何改进。多个数据库之间的引用比同一个数据库中的多个表要慢得多。

然而,单个数据库将更快、更容易维护:只需保护一个数据库,只需在应用程序中管理一个数据库连接等。

数据库存在的原因是将一组相关对象放在一起,以便我们可以相应地管理它们(否则我们将直接创建表 procs 和视图,而不将它们绑定到数据库,并且每个表都有自己的文件,统计, ETC)。

如果您认为将表放在同一个数据库中会变得混乱,也许您需要更好的对象命名模式?

底线:对我来说似乎是一个非常糟糕的做法,因为它没有带来任何优势和很多缺点。

于 2013-02-18T12:33:31.840 回答