〜2 ^ 40ページの本があるとしましょう。毎日、連続したページのランダムなチャンクを読みます (時には既に読んだページを含むこともあります)。(SQLite) データベースで「どのページを読んだか」の情報を保存および更新する最もスマートな方法は何ですか?
私の現在の考えは、[firstChunkPage, lastChunkPage] エントリをテーブルに保存することですが、これを効率的に更新する方法がわかりません。
- 最初にすべての可能なオーバーラップをチェックしてから更新する必要がありますか?
- 新しい範囲を挿入してから、重複するエントリをマージする必要があります (複数の重複が発生する可能性があるため、おそらく複数回ですか?) このような SQL クエリを作成する方法がわかりません。
これはかなり一般的な問題のように見えるので、これに対する「認識された」解決策を誰かが知っているかどうか疑問に思っています。
どんな助けやアイデアも大歓迎です!
編集: 読み取りは実際にはランダムではありません。チャンクの数はページ数に比べてほぼ一定で非常に小さいと予想されます。