我们必须基于大型数据库创建相当大的 Ruby on Rails 应用程序。该数据库每天更新,每个表大约有 500 000 条记录(或更多),并且这个数字会随着时间的推移而增长。我们还必须提供所有数据的正确版本以及参照完整性。用户必须可以从一个版本移动到另一个版本,这是主数据库在不同时间点的“快照”。此外,部分数据需要通过 API 提供给其他外部应用程序。
考虑到大量数据,我们考虑将数据库拆分为多个部分:
当前数据状态
每个表的版本化属性
第一个数据库在特定历史时间点的快照
每一个都有自己的应用程序,创建一个带有 API 的服务来与数据交互。它是必需的,因为我们不想创建多个应用程序直接连接到多个数据库。
问题是:这是正确的方法吗?如果没有,你有什么建议?
我们从未有过如此规模的项目的任何经验,我们正在努力寻找可能的最佳解决方案。我们不知道这种数据分离是否有任何意义。如果是这样,如何提供不同应用程序与单个服务以及服务本身之间的适当通信,因为这也是必需的。