【问题标题】:Database design - Sharing data between two databases?数据库设计 - 在两个数据库之间共享数据?
【发布时间】:2015-12-28 20:24:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql sql-server database database-design


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2018-02-25
          • 1970-01-01
          • 1970-01-01
          • 2021-09-28
          • 1970-01-01
          • 1970-01-01
          • 2012-08-27
          • 2012-01-26
          • 2010-12-24
          相关资源
          最近更新 更多