所以你的选择是:
Hash Key | Range Key | Attributes
----------------------------------
user id | utc time | json data
----------------------------------
user123 | 1357306017 | {UserID1:0, UserID2:0, Message:"", DateTime:0}
或者
Hash Key | Range Key | Attributes
--------------------------------------------------------------
user id | utc time | UserID1 | UserID2 | Message | DateTime
--------------------------------------------------------------
user123 | 1357306017 | 0 | 0 | "" | 0
两者都是可行的选择,并且选择取决于您希望如何读取数据,如果您对每个项目都有一个属性,那么您可以单独请求这些属性。
我们倾向于根据我们的使用模式使用混合方法。我们需要单独访问的元素被赋予了它们自己的属性。我们只想访问的元素以及其他元素的集合都被分配了一个属性,然后存储为 JSON 字符串的单个 blob 或 base64 编码数据。
对于第二部分,确实,您是对的,您不需要再次将用户 ID 和日期时间存储为属性的一部分,因为它们是哈希和范围键,当您发出请求时会返回它们。