假设我有一本书,大约 2^40 页。每天,我都会随机阅读一些连续的页面(有时包括我已经阅读过的一些页面)。在(SQLite)数据库中存储和更新“我读过哪些页面”的信息的最聪明的方法是什么?
我目前的想法是将 [firstChunkPage, lastChunkPage] 条目存储在一个表中,但我不确定如何有效地更新它。
- 我应该先检查所有可能的重叠然后更新吗?
- 我应该只插入我的新范围,然后合并重叠条目(可能是多次,因为可能会发生多次重叠?)?我不确定如何构建这样的 SQL 查询。
这看起来是一个很常见的问题,所以我想知道是否有人知道对此的“公认”解决方案。
欢迎任何帮助或想法!
编辑:阅读实际上并不是随机的,与页数相比,块的数量预计几乎是恒定的并且非常小。