日時であるETSに{Key, Value}
データを保持します。内部で指定された時間内にすべてのアイテムを選択するのは非常に簡単です。ordered_set
Key
[From, To]
そんな感じ:
ets:select(Tab, [{{'$1', '$2'}, [{'>=', '$1', From}, {'=<', '$1', To}], ['$2']}])
関数内にLimit
パラメータがselect()
あるので、選択するアイテムの数を制限することができます。しかし、どうすればオフセットを指定できますか?
入力として、私のモジュールは時間間隔とページ番号を受け取ります。私の目標は、指定された時間間隔とページのアイテムを返すことです。ページサイズ(Limit
)は定数です。オフセットを次のように計算できます
Offset = Limit * PageNumber - Limit
問題は、特定のページのみのアイテムを効果的に選択するにはどうすればよいですか?
関数がパラメーターselect()
を受け取ることができることは知っていますが、前の選択からの状態がありません。Continuation
ページ番号しかありません。
可能ですが、他のデータ構造を使用する必要があります。より良い解決策をお勧めしてください。