创建新数据库以供发布?

时间:2013-03-14 16:58:28

标签: database sqlite database-design architecture

我们拥有一个数据库,可存储我们所有软件产品的各种记录。一些记录用于特定软件,一些记录由不同软件共享 不同的团队将锁定,编辑和更新数据库 当我们发布不同的软件时,我们只需抓住这个单一的大数据库并使用该软件发布它。

问题在于:

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

由于架构更新,选项2是个坏主意。它在概念上与分叉代码库非常相似。如果您将代码库分叉10次,那么当出现错误修复时,您必须前往10个位置进行修复并释放它。

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

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