【问题标题】:DynamoDB & UpdateItemDynamoDB 和 UpdateItem
【发布时间】:2014-06-25 15:13:22
【问题描述】:

从 AWS 上的阅读来看,DynamoDB UpdateItem 似乎能够为现有项目添加属性。

例如,如果我有一个项目 - 主键:用户 ID,它有一些属性,例如 成员:1 成员:2 成员:3

我可以添加成员:4 吗?

* 属性的key成员需要唯一吗?如果是这样,当项目的内容只是成员编号列表(他们在系统上的朋友)时,是否有办法使其独一无二?

谢谢

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb


    【解决方案1】:

    是的,DynamoDB 支持将字符串、数字和二进制集作为属性。

    http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelDataTypes:

    字符串、数字和二进制集

    Amazon DynamoDB 还支持数字集、字符串集和二进制 套。多值属性,例如书籍项目中的 Authors 属性 产品项目的颜色和颜色属性是字符串集类型的示例 属性。请注意,因为它是一个集合,所以集合中的值必须 是独一无二的。属性集没有排序;值的顺序 不保留在集合中返回。请注意,Amazon DynamoDB 不 支持空集。

    【讨论】:

      【解决方案2】:

      您可以随意添加新属性。

      您应该更喜欢使用“数字集”属性类型来存储朋友成员 ID,而不是为每个朋友添加新的属性。

      但不要忘记限制

      对与单个项目关联的属性数量没有明确限制,但项目的总大小(包括所有属性名称和属性值)为 64KB。

      【讨论】:

        【解决方案3】:

        在 Dynamodb 中,Primary Key 被命名为“Hash Key”。这是独一无二的。我们必须在创建表时定义什么是哈希键(只有一个)。在这种情况下说

        Hash Key 是 UserID。 Dynamodb 的优点是我们可以在现有属性中添加任意数量的属性。 例子 对于用户 ID 1 我们有 member1 member2 member3 然后对于用户 ID 2,我们可以有 member, member2, member3, member4,.... 我们不需要在 Dynamo-db 中创建表的时候创建新的列或属性来更新属性。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多