100 万のアイテムのマスター リストと 100 万のユーザーの別のリストがあり、各ユーザーが 50 アイテムのカスタム ソート サブセットを持っている場合、それをモデル化する直接的な方法は次のようになります。
items
[itemID] : { name : 'aaa', description : 'bbb', ... }
...
users
[userID1] : {
name : 'john',
token : 'xyz',
sortedItems : {
itemID1 : xx,
itemID2 : xx,
...
}
}
各ユーザーは、必要な順序で独自の sortedItems コレクションを取得します。これの問題は、アイテムの完全なデータを取得するために、アイテムごとに複数のリクエストが必要になることです。並べ替えられたリストの更新を処理したら、マスター リストにクエリを実行して項目データを取得する必要があります。大したことないのですが、これはお勧めですか?
もう 1 つの方法は、マスター リストとサブリストの両方でアイテム データを複製する (またはマスター リストを削除する) ことです。そうすれば、必要なときにすべてのデータがすぐそこにあります。その明らかな問題は同期です。アイテムのプロパティが変更されるとどうなりますか? すべてのユーザーの sortedItems リストをループして、各インスタンスを更新する必要があります。これは、深刻なデータの不整合の原因です。
考え?