0

我正在思考和探索为我的新应用程序设计数据库的选项。一般来说,我会有注册用户和有关他们的信息。他们将能够在应用程序中做一些事情,并且数据将作为用户数据在 sam DB 中(所以我可以共享 FK 的东西)

但是,然后我计划拥有第二个数据库,它在逻辑上完全独立于第一个数据库,除了它将共享用户 ID 作为 FK。

我不知道我是否应该将第二个逻辑放在额外的数据库中,还是应该将所有内容都放在同一个数据库中。我计划在我的应用程序中有子域用于第二个逻辑(它就像应用程序中的应用程序)但是如果我发现它们应该共享更多数据怎么办?交叉查询会降低我的表现吗?实际上,这是一种可行的方法吗,是否有真正的理由来分离数据库?

4

3 回答 3

2

一旦你有两个数据库,你就有潜在的复杂性。您没有给出需要两个数据库的任何具体原因。所以保持简单,直到你有理由。

人们所做的一个例子:有一个“当前”数据库,很小,只保存现在需要的数据。这可能是接受和履行订单的地方。一旦数据不再是最新的,比如在订单完成后的几天或几周内,将数据移动到“历史”数据库中。营销和管理人员可以查看历史的总体趋势,而不会影响“当前”数据库的性能,其性能可能对让您的客户满意至关重要。

举一个复杂性的例子:任何时候你有两个数据库,你需要考虑它们之间的一致性,这比看起来要难得多。数据库确实提供了两阶段事务功能,或者您可以设计批处理,但总是有难以捕捉的微妙之处。

于 2013-10-14T07:47:46.163 回答
1

我只想将所有内容保存在一个数据库中。除非你有几十个表,否则应该没有真正的性能问题,恕我直言。然而,它将极大地方便您的生活,只需要使用一个数据库连接,而不必担心合并来自两个查询的信息,

于 2013-10-14T07:40:24.447 回答
1

还同意除非您的数据量很大(从问题来看,这里似乎不是这种情况),否则您可以使用单个数据库来存储您的数据而不会出现性能问题。

对于数据结构的“可视化”分离,您始终可以在单个数据库的两个模式中创建表。

于 2013-10-14T08:01:59.513 回答