Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设您有两个模型:Books 和Collections。ACollection有一个或多个Books。例如,现在您有了一个 API,您可以在其中/collections/1获取集合 1 中的所有书籍。
Book
Collection
/collections/1
但是收藏会随着时间而改变!书籍将被添加或删除。所以现在我想要一个新资源,collection_changes/:id. 我给它一个时间戳,它会返回从那时起从集合中添加或删除的所有书籍的列表。
collection_changes/:id
有没有一种快速有效的方法来做到这一点?
只需保留对每个集合的更改的排序(按时间戳)列表(更改将在最后添加并且永远不会删除,因此这是有效的)。然后,您可以通过二进制搜索以对数时间找到给定的时间戳,并仅返回时间戳之后的列表部分。