java - 将一个应用程序 fork 到两个实例 - 一个还是两个数据库实例?

标签 java sql database-design

我们有一个基于 JDBC 和 Oracle 数据库的工作应用程序。需要创建应用程序的另一个实例。新创建的应用程序实例将是为公司的可信客户端设计的,访问同一应用程序服务器不会造成问题。

这里出现了我们的疑问,因为我们有三种选择来完成任务:

  1. 部署应用程序的另一个实例并创建单独的数据库。
  2. 修改应用程序以访问两个单独的数据库
  3. 修改应用程序和数据库以支持“实例” - 每个表都会有另一列来定义我们正在处理的实例

需要考虑一些因素:变更工作、维护的方便性(修补应用程序和数据库、存储在存储库中、需要保持两个版本最新)。

我知道这个问题没有明确且明显的答案,但我只是想听听您的意见,了解每个解决方案的优缺点,最重要的是了解我在每个解决方案中没有看到的潜在陷阱。

最佳答案

我认为,如果您的实例应该看到单独的数据集,最简单的方法是创建 2 个单独的(相同的)数据库模式,并将第一个实例配置为使用第一个模式,第二个实例配置为使用第二个模式。

如果两个实例应该看到相同的数据,只需将它们配置为使用相同的数据库即可。

无论如何,不​​要修改您的代码来支持像这样的愚蠢要求。如果你收到这样的要求,你将来会收到更多(我不是算命先生。我只是有一些经验......)。我认为每次收到另一个部署要求时,您最不想更改应用程序。

关于java - 将一个应用程序 fork 到两个实例 - 一个还是两个数据库实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4602911/

相关文章:

java - 轻松将 Map<String, Object> 转换为 Map<String, String>

sql - 在一个查询中选择两个计数

sql - 如何将秒转换为日期时间的 108 格式 hh :mm:ss in sql server without writing function

mysql - 读与写表数据库设计

mysql - 标准化、高效的 SQL 数据库设计

Java:序列化未知的Arraysize

java - Elasticsearch 搜索查询选择

java - WildFly 8.2.0 和 Infinispan 6.0.2 CacheContainer 注入(inject)错误

sql - 遍历表格的每一列

database-design - 完全可审计的数据模型的最佳实现?