大規模なデータベースに基づいて、かなり大規模なRubyonRailsアプリケーションを作成する必要があります。このデータベースは毎日更新され、各テーブルには約500 000レコード(またはそれ以上)があり、この数は時間の経過とともに増加します。また、参照整合性とともに、すべてのデータの適切なバージョン管理を提供する必要があります。ユーザーがバージョン間を移動できる必要があります。これは、さまざまな時点でのメインデータベースの一種の「スナップショット」です。さらに、データの一部は、APIを使用して他の外部アプリケーションに提供する必要があります。
大量のデータを考慮して、データベースを分割することを考えました。
現時点でのデータの状態
各テーブルのバージョン管理された属性
特定の過去の時点での最初のデータベースのスナップショット
それらのそれぞれに独自のアプリケーションがあり、データと対話するためのAPIを使用してサービスを作成します。複数のデータベースに直接接続する複数のアプリケーションを作成したくないため、これが必要です。
問題は、これが適切なアプローチですか?そうでない場合、あなたは何を提案しますか?
私たちはこれほどの規模のプロジェクトを経験したことがなく、可能な限り最良の解決策を見つけようとしています。この種のデータ分離に意味があるかどうかはわかりません。もしそうなら、これも必要になるので、個々のサービスと、そしてサービス自体の間で異なるアプリケーションの適切な通信を提供する方法。