【发布时间】:2014-02-24 09:57:22
【问题描述】:
我正在使用 Java 开发一个小型游戏编辑器,它使用户可以使用我的 UI 在 HSQL 数据库中插入/编辑/删除数据。我面临的问题是,我想给在不同机器上处理这样一个游戏项目的可能性,然后以编程方式合并数据库。
我想提供的另一件事是模组,因此人们应该能够创建模组并将特定游戏用作他们的“基础版本”。至少在它们不修改数据库中的相同行的情况下,还应该可以同时激活多个 mod。在那种情况下,它们将是不兼容的。
数据库完全离线,这意味着我不提供任何服务器或类似的东西。该数据库包含大约 30 个表格,包括 NPC、物品、地形 (...) 以及所有这些之间的链接。
我已经看到了一些 HSQLDB 插件:C-JDBC、HA-JDBC 和 SymmetricDS。它们旨在执行集群,但我什至不确定这是否正是我需要的东西,而且我无法弄清楚它们是否可以从我的代码中自动完成这项工作,以免让最终用户使用任何第 3 方 UI 自行合并。
我也想过只在 XML 结构中保存“变更集”,但这意味着我必须自己实现整个合并,而且我更愿意使用现有的解决方案而不是自己做所有事情.
【问题讨论】:
-
我非常怀疑任何数据库都包含专门为能够满足您的应用程序需求而构建的合并功能。当然你需要自己构建合并逻辑;其特定于您的应用程序的业务逻辑。我可能会添加一个简单的 Web 服务连接,以便能够使一个实例采用来自另一个实例的数据;使用 JSON 作为数据格式的导入/导出可能是一个简单的替代方案,根本不需要连接。
标签: java database merge hsqldb