0

我有一个关于数据架构和数据库的小问题。

我们有一个中央数据库。它连接到 API。这个数据库链接到一个单一的应用程序,我们正试图将它分解成几个服务。

我们有一个 API,我们称之为“Api1”。该 API 将管理不同的信息,包括省份。

我们还有另一个 API,我们称之为“Api2”,它将管理数据,如应用程序。

在此处输入图像描述

这些应用程序在数据库中链接到一个省。到目前为止,此 Api2 将直接连接到与 Api1 相同的数据库。我们想结束这种做事方式,这不是最理想的。

那么,我们如何使用来自另一个数据库的外键来保持这种连接和这种参照完整性呢?我们应该将信息从数据库 1 复制到数据库 2,还是应该断开数据库链接,并包含一个 HTTP 调用以从 API 更新此信息,从而将“province_id”FK 字段仅转换为 INT?

我的问题有点复杂,但在我看来这个主题有点复杂,提前感谢您的回答!

克里斯托夫

4

1 回答 1

1

在这种情况下,没有直接的方法来保持这种参照完整性。有几种选择:-

  1. 只需删除参照完整性并将 id 保留为 INT 即可。如果我们不直接在 App2 中使用 App1 数据,我们可以选择该选项。仅供参考。
  2. 复制数据。这里我们需要确保 App1 的数据是 Source of Truth 并且 Replicate 副本是只读的。
  3. 选项 1 和一项检查数据库是否包含有效数据的后端服务。

根据我的经验,大多数情况下使用选项 1,然后使用选项 2 和 3。此外,复杂性级别也以相同的顺序增加。

于 2021-12-20T12:38:17.967 回答