必要なクエリを処理できるように、DynamoDB テーブルをモデル化する方法について、具体的な質問があります。
私のアプリケーションは、「イベント」のアイデアを中心にしています。すべてのイベントには属性 (名前、場所、時間、参加者数など) があります。イベントは、それらが配置されている都市に関連付けられています。get / query リクエスト (おそらく一連の get / query リクエスト) を実行して、特定の都市の参加者が最も多い上位 25 のイベントを取得する方法を見つけようとしています。
私はリレーショナル データベースのバックグラウンドを持っており、これは非常に単純なクエリになります (select * from events where city = x order by出席者制限 25)。しかし、非リレーショナル データベースで同じことを行う方法を理解するのに苦労しています。ハッシュのマッピングを保存するために追加のテーブルを作成する必要があることはわかっていますが、それを理解できないようです。
私がそれを実装することを考えた1つの方法は、どういうわけか「出席者」(Number型の)を範囲キーにし、都市をハッシュキーにすることです。ただし、これは必ずしも一意のキーではありません。これは、同じ都市の複数のイベントに同じ数の参加者がいる可能性があるためです。また、範囲キーを「更新/アトミックにインクリメント」することさえ可能ですか?
ご助力いただきありがとうございます!