SQlite を使用して、年ごとに分割された大規模なデータベースがあります。
要件は次のとおりです。 1. すべてのデータに一度にアクセスできること。2.挿入は現在のバージョンにのみ移動します。3. データは時間の経過とともに分割され続けます。4. アクセスは、排他的アクセスを持つ単一のプログラムを介して行われます。5. プログラムはいくつかのセットアップ SQL を受け入れることができますが、1 つまたは複数のデータベースにアクセスするときに同じ SQL を実行する必要があります。
それらをまとめて表示するために、次のことを行います(実際にはプログラムで、ここにコマンドラインを示します):sqlite3 DB_current.sq3
データベース 'DB_2006_thru_2007.sq3' を hist1 としてアタッチします。データベース 'DB_2008_thru_2009.sq3' を hist2 としてアタッチします。一時ビュー hist_tbl を作成 as select * from hist1.hist_tbl union select * from hist2.hist_tbl union select * from main.hist_tbl;
temp.hist_tbl (ビュー) と main.hist_tbl (テーブル) が追加されました。テーブルを修飾せずに選択すると、ビューからデータが取得されます。セットアップ方法に応じて、結合されたビューまたは個々のデータベースに対して既定の SQL クエリを使用できるため、これは望ましいことです。さらに、いつでも main.hist_tbl に挿入できます。
質問 1: 欠点は何ですか? 質問 2: もっと良い方法はありますか?
前もって感謝します。