我正在考虑和探索为我的新应用程序设计数据库的选项。一般来说,我会注册用户和他们的信息。他们将能够在应用程序中执行某些操作,并且数据将作为用户数据存储在sam DB中(因此我可以使用FK的共享和内容)
但是,我计划让第二个数据库完全独立于第一个数据库,除非它将userID作为FK共享。
我不知道我是否应该将第二个逻辑放在额外的数据库中,或者我应该将所有内容放在同一个数据库中。我打算在我的应用程序中为第二个逻辑设置子域(它就像应用程序中的应用程序),但如果我发现它们应该共享更多数据呢?交叉查询是否会降低我的表现?这实际上是一种方法,是否有真正的理由来分离数据库?
答案 0 :(得分:2)
只要有两个数据库,就有可能存在复杂性。您没有给出任何特殊原因需要两个数据库。所以保持简单直到你有理由。
人们做的一个例子:拥有一个“当前”数据库,小,只保留现在需要的数据。这可能是订单被采纳和履行的地方。一旦数据不再是最新的,比如在订单填写后几天或几周,将数据移动到“历史”数据库。市场营销和管理人员可以查看历史记录中的整体趋势,而不会影响“当前”数据库的性能,“数据库”的性能可能对保持客户满意度至关重要。
作为复杂性的一个例子:每当你有两个数据库时,你需要考虑它们之间的一致性,这比可能出现的要困难得多。数据库确实提供了两阶段事务功能,或者您可以设计批处理过程,但总是存在难以捕获的细微差别。
答案 1 :(得分:1)
我会将所有数据保存在一个数据库中。除非你有几十个表,否则应该没有真正的性能问题,imho。然而,它将极大地促进您的生活,只需要使用一个数据库连接&不必担心合并来自两个查询的信息,
答案 2 :(得分:1)
同样同意,除非您的数据量很大(从问题来看,这似乎不是这种情况),您可以使用单个数据库来存储数据而不会出现性能问题。
对于数据结构的“可视”分离,您始终可以在单个数据库的两个模式中创建表。