【问题标题】:How to set DynamoDB range key, String or Map如何设置 DynamoDB 范围键、字符串或映射
【发布时间】:2018-11-21 00:24:46
【问题描述】:

我有一个带有主哈希键和范围键的 DynamoDB 表。范围键将有两个属性。假设这些属性名称是:name1, name2,其值为 value1, value2

方案A:将两个属性组合为字符串,使用逗号作为分隔符
主哈希键:id
范围键:value1,value2

缺点
1.如果某些有线值包含此分隔符,逗号可能不起作用

B 计划:将地图转换为范围键的字符串
主哈希键:id
范围键:“{\“name1\”: \“value1\”, \“name2\”: \“value2\”}”

缺点
1.不同的SDK可能会导致基于相同的值不同的JSON字符串? (不确定),需要支持多个SDK读/写。喜欢 Java 和 Ruby

那么,哪种解决方案效果更好?或者有什么更好的建议?

谢谢! 雷

【问题讨论】:

    标签: amazon-dynamodb


    【解决方案1】:

    你在正确的轨道上。 AWS 文档中关于密钥设计的建议是您的第一个建议,但它也有一些关于您称为缺点的情况的警告。

    我认为使用不同的 sdk 解析器不会有问题,但我也认为在这里采取一些预防措施是个好主意。因此,我不会使用 sdk 直接将 json 解析为字符串,而是使用自定义函数手动连接值以生成确定性值,例如“name1-value1-name2-value2”或“name1:value1-name2:value2”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-27
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多