Amazon dynamodb 需要建议:按照官方文件所述,将DynamoDB构建为新模型
目前,我的数据库有3个集合。基本上,我的数据结构如下所示Amazon dynamodb 需要建议:按照官方文件所述,将DynamoDB构建为新模型,amazon-dynamodb,Amazon Dynamodb,目前,我的数据库有3个集合。基本上,我的数据结构如下所示 xx: { yy: { zz: { } } } 其中,“xx”、“yy”、“zz”是独立的集合。我用键映射了xx>yy>>zz xx: { KEY: "123" } YY: { xx_Key : "123", KEY : "456" } zz: { yy_key: "456", KEY: "789" } 1,问题是如何将这3个
xx: {
yy: {
zz: {
}
}
}
其中,“xx”、“yy”、“zz”是独立的集合。我用键映射了xx>yy>>zz
xx: {
KEY: "123"
}
YY: {
xx_Key : "123",
KEY : "456"
}
zz: {
yy_key: "456",
KEY: "789"
}
1,问题是如何将这3个表合并成一个表,但需要对每个“xx”、“yy”、“zz”执行每个操作。因为dynamoDB只允许顶级GSI。那么,我如何对这些设备进行CRUD操作?
2,另一种方法是将数据存储为“一对一”。因此,我可以在顶级域中获得XX,YY,ZZ,但它会增加数据冗余吗?基本上改变的数据是
Entry1: {
XX: "123",
YY:"456",
ZZ: "789"
}
Entry2: {
XX: "123",
YY:"456",
ZZ: "790" //Change in value here. But same xx & yy repeated.
}
那么基本上我该怎么做呢
另一种方法是,将数据存储为“一对一”。所以我可以在顶级域中得到XX,YY,ZZ,但它会增加数据冗余吗
是的,它将增加数据冗余,这将增加存储成本,但这不应成为主要问题,除非复制的数据与文档大小相比非常重要
使用NoSQL进行规范化的概念应该谨慎处理,因为连接大多不受支持,从而导致查询延迟增加
我发现这在设计DynamoDB表结构时很有用。这里引用博客的要点(实际上是博客的结论):
没有一个一刀切的指导方针来决定一个项目
正常化战略。如果您正在迁移,这一点尤其正确
来自关系数据库的应用程序。许多假设
您所做的关系模式设计不适用于NoSQL
像DynamoDB这样的数据库
最后,您选择的模式主要取决于访问权限
应用程序的模式和数据项的大小
我可以知道取消勾选答案的原因吗?有什么遗漏或不正确的吗?