我有一个DynamoDB表,其中包含主哈希键和范围键。范围键将具有两个属性。假设这些属性名称为:name1, name2
,值为value1, value2
计划A :将两个属性组合为字符串,使用逗号作为分隔符
主哈希键:id
范围键:value1,value2
缺点
1.如果某些有线值包含此分隔符,则逗号可能无效
计划B :将map转换为范围键的字符串
主哈希键:id
范围键:“{\“name1\”: \“value1\”, \“name2\”: \“value2\”}”
缺点
1.不同的SDK可能导致基于相同值的不同JSON字符串? (不确定),需要支持多个SDK读/写。像Java和Ruby一样
那么,哪种解决方案效果更好?还是有更好的建议?
谢谢! 射线
答案 0 :(得分:0)
你走在正确的轨道上。关于关键设计的AWS文档会提出您的第一个建议,但它也会对您所说的情况提出一些警告。
我不认为您可能会遇到不同sdk解析器的问题,但我也认为这里的一些预防措施将是一个很好的意识形态。因此,我不是使用sdk直接将json解析为字符串,而是使用自定义函数手动连接值以生成确定性值,如“name1:value1-name2:value2
”或“{{1}}”。