Amazon dynamodb DyanmoDB主键设计:最频繁的操作之一是;按时间顺序列出项目”;,我应该使用时间戳吗?

Amazon dynamodb DyanmoDB主键设计:最频繁的操作之一是;按时间顺序列出项目”;,我应该使用时间戳吗?,amazon-dynamodb,Amazon Dynamodb,Edit:@conceptquest提醒说DynamoDB的主键是散列键,所以我下面描述的想法行不通;但我仍然想讨论如何在DynamoDB模式设计期间实现这一“按时间排序”功能 在这里,我发现AWS使用DynamoDB为其论坛提供服务,请参见。AWS论坛如何按时间顺序显示线程? 我有一个DynamoDB表推特项目,我的Web应用程序的登录页是按历史顺序显示推特项目(注:“推特”是我自己的Web应用程序的数据,而不是来自Twitter.com的推特——我在这里用推特来清楚地描述这个问题的情况) 显

Edit:@conceptquest提醒说DynamoDB的主键是散列键,所以我下面描述的想法行不通;但我仍然想讨论如何在DynamoDB模式设计期间实现这一“按时间排序”功能

在这里,我发现AWS使用DynamoDB为其论坛提供服务,请参见。AWS论坛如何按时间顺序显示线程?

我有一个DynamoDB表
推特项目
,我的Web应用程序的登录页是按历史顺序显示推特项目(注:“推特”是我自己的Web应用程序的数据,而不是来自Twitter.com的推特——我在这里用推特来清楚地描述这个问题的情况)

显然,对我的DynamoDB最频繁的查询(每个用户的主页都需要此查询)是列出存储在我的
Tweet Items
表中的所有Tweet

下面的表结构很吸引人

| primary  Key             | Attribute  |
| Timestamp                | text-content|
-------------------------------------------
| "2017-03-05-12:30:30"    | "some string"|
但我也听说将时间戳作为散列键通常是一种反模式


对于我的用例,使用时间戳作为主键是否明智?如果没有,我该怎么办?

您可以直接使用
时间戳
作为
排序
键,而不是散列键。您将需要其他东西作为hashkey,“tweet”id(如果有的话)。如果没有id,可以使用生成的值


然后,您可以使用来控制时间戳是按升序还是降序返回。

如何按时间顺序排列数据?我相信散列键在这方面没有帮助。对不起,从“散列”改为“主键”——我的意思是主键在DynamoDB中,主键只是散列键或分区键。术语主键是RDBMS术语。请注意,DynamoDB上没有“按订单”功能。这就是为什么我问你如何按时间顺序对数据进行排序。吉姆,你说的“排序键”是什么意思?这是分区键还是范围键,还是AWS DynamoDB术语中的其他东西?排序键和范围键是一样的。有些文档/ui使用一个术语,有些使用另一个术语。