0

私が取り組んでいるプロジェクトの招待システムを書こうとしています。「メールアドレスを教えてください。準備ができたらベータ版の招待状をお送りします」というようなものを予定しています。まだ招待を受け取っていない最初のxユーザーをクエリできるように、DynamoDB テーブルを設計する方法を見つけようとしています。

私が作成しようと考えているテーブルには、次の列のようなものがあります。

  • Eメール
  • 日にち
  • 満たされた (ブール値)

DynamoDB のハッシュキー、範囲キー、およびセカンダリインデックスの組み合わせでこれを行うことはできますか? それとも、これは SQL データベースにより適したものですか? SQL クエリは次のようになります。

SELECT email
FROM invite_request
WHERE fulfilled = 0
ORDER BY date
LIMIT 50;
4

1 に答える 1

0

ここでの最良のオプションは、ハッシュ キーを Fullfilled または Unfullfilled として使用することです。そうすれば、スキャンよりもはるかに安価なクエリ メソッドを使用できます。したがって、レコードは次のようになります。

:Hash_key => Boolean , :Range_key => DateTime , Attributes => [email=>value]

この構造を使用して、特定の日付範囲内のすべての未処理の電子メールを照会し、結果を制限できます。お役に立てれば。後で情報にもっとアクセスしたい場合は、より良いオプションとして SimpleDB を検討することをお勧めしますが、これを単一の機能にのみ使用している場合は、Dynamo が最適な方法です。

于 2013-07-24T19:48:20.043 に答える