我们有以下问题。我们的企业应用程序在 MySQL 中有一个数据库,它的结构似乎变得过于复杂 - 有 100 多个表(它已经开发了 7 年)。
但是,大多数表与任何其他表根本没有任何关系。有一些人人都使用的通用表(字典)(大约二十个这样的表),但仅此而已。问题出现了如何使这个数据库更快、更可靠。
我读了很多关于数据库分解的文章。也就是说,您将与不同域相关的表放在不同的数据库中。例如,与运单和其他纸质资料相关的任何内容都放在名为 Papers 的数据库中,与客户及其订单相关的任何内容都放在名为 Clients 的数据库中,等等。
这里我们有两个问题:
- 用户应该将企业应用程序视为作用于单个域。开发人员必须以某种方式更改使用数据库的核心,以便它可以处理多个数据库。
- 公用表产生了一个问题。它们必须保存在单个数据库中,并且分解后不能在所有数据库中复制。因此,我们如何进行查询 SELECT * FROM A JOIN B,其中 A 和 B 在不同的数据库中(在不同的服务器上)?
这两个问题实际上解决了同一个问题——是否有任何常见的企业模式(如 GoF)来解决这个问题?我对适合 Java EE 的模式特别感兴趣。