最初に、データベースのバージョン管理に関するすべての投稿を読んだことを指摘させてください。鍵)。
私は、公共交通機関のルート プランナーのためのあらゆる種類の最適化記録と統計を保持する「コンパイル済みデータベース」を持っています。これは、別のデータベースのプログラムによって生成されます。コンパイルされたデータベースは、ユーザー アクティビティの監視とキャッシュを除いて、アクティブな間は変更されません。一部のテーブルには、2 ~ 300,000 ものレコードが含まれています。
このコンパイルされたデータベースは、入力データベースに変更が発生すると完全に更新されます。そのため、新しいデータベース バージョンは、他の以前のバージョンとはまったく相互作用しません。しかし、私は各バージョンを個別に保存し、ユーザーが望む場合はプログラムから使用できるようにしたいと考えています (公共交通機関の地図の歴史のようなものだと考えてください)。
唯一の合理的な方法は、バージョンごとに異なる物理データベースを作成することです。これは難しいことでも間違っていることでもありませんが、データベース全体をバージョン管理するメカニズムを知っているかどうかを尋ねています (他の投稿のように、データベース内のデータの一部だけではありません)。全体をより論理的でクリーンにするためです。
私は SQL Server 2012 を使用していますが、おそらくサーバー上では 2008 R2 になります。
また、バージョン管理されたデータを同じデータベースに格納する (そして各テーブルに VersionID 列を追加する) ことを考えている場合は、忘れてください。なぜなら、2 ~ 300,000 レコードのテーブルでは、10 バージョン (3 か月未満の期間で蓄積されることになるからです) ) は 300 万を超えるレコードを意味し、そのうちの 300,000 しか使用されないので、ありえません!