Sql 如何在DynamoDB中存储邀请请求?

Sql 如何在DynamoDB中存储邀请请求?,sql,database,amazon-web-services,indexing,amazon-dynamodb,Sql,Database,Amazon Web Services,Indexing,Amazon Dynamodb,我正在尝试为我正在进行的一个项目编写一个邀请系统。我计划有一个“给我们你的电子邮件地址,我们会给你一个测试版邀请,当我们准备好了”之类的事情。我想知道如何设计一个DynamoDB表,以便查询尚未收到邀请的前x个用户 我正在考虑创建的表有如下列: 电子邮件 日期 已实现(布尔) 我可以在DynamoDB中结合使用散列键、范围键和二级索引吗?或者这更适合SQL数据库?SQL查询如下所示: SELECT email FROM invite_request WHERE fulfilled = 0 O

我正在尝试为我正在进行的一个项目编写一个邀请系统。我计划有一个“给我们你的电子邮件地址,我们会给你一个测试版邀请,当我们准备好了”之类的事情。我想知道如何设计一个DynamoDB表,以便查询尚未收到邀请的前x个用户

我正在考虑创建的表有如下列:

  • 电子邮件
  • 日期
  • 已实现(布尔)
我可以在DynamoDB中结合使用散列键、范围键和二级索引吗?或者这更适合SQL数据库?SQL查询如下所示:

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

这里最好的选择是将哈希键用作Fullfilled或Unfullfilled。这样,您就可以使用比扫描便宜得多的查询方法。所以你的记录看起来像:

:Hash\u key=>Boolean,:Range\u key=>DateTime,Attributes=>[email=>value]

使用此结构,您可以查询特定日期范围内所有未完成的电子邮件,并限制结果。希望这有帮助。如果您希望以后能够更多地访问这些信息,您可能希望将SimpleDB作为一个更好的选择,但是如果您仅将其用于单功能Dynamo,那么这是一个很好的选择