0

我们有一个数据库,其中包含我们所有软件产品的各种记录。有些记录是针对特定软件的,有些记录是由不同的软件共享的。
不同的团队将锁定、编辑和更新数据库。
当我们发布不同的软件时,我们只是抓取这个单一的大数据库并与软件一起发布。

这是问题所在:

  • 数据库可能会变得更大,并且它包含一个软件的不必要信息,因为它包含所有软件产品的所有记录。
  • 人们似乎很容易搞砸:您正在编辑的数据库可能不是最新的;更改可能会破坏其他软件等...

我想知道这种问题的通常解决方案是什么,以下是我能想到的解决方案:

  1. 保留母数据库并为不同的软件生成子数据库。
    不同的团队可以使用 Web 界面将记录添加到母数据库,并在发布时运行一个任务,该任务基本上从母数据库复制必要的表并为发布创建一个新数据库。
  2. 不要使用母数据库。不同的软件使用不同的数据库。但是如何处理共享记录呢?
4

1 回答 1

0

我会采用你的第一种方法。这就是我在阅读您的答案之前的想法。拥有“母”数据库的好处是您可以使所有软件产品符合相同的模式。如果您愿意,它们都共享相同的模板。

然后,当您准备好发布时,就像您说的那样,您运行一个流程并生成数据库的紧凑版本并准备发布。

由于架构更新,选项 2 是个坏主意。它在概念上与分叉代码库非常相似。如果你 fork 你的代码库 10 次,那么当一个 bug 修复出现时,你必须去 10 个地方修复它并发布它。

还要考虑拥有一个母数据库可以让您轻松地对所有数据库进行查询。“我们有多少版本?我们有多少产品?我们发布的最后一个产品是什么?”

如果你拆分数据库,这种查询就更难编写了。

于 2013-03-14T22:40:30.033 回答