Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何在DynamoDB中建模一对多关系,以便查询所有子关系?_Database_Amazon Web Services_Nosql_Amazon Dynamodb - Fatal编程技术网

Database 如何在DynamoDB中建模一对多关系,以便查询所有子关系?

Database 如何在DynamoDB中建模一对多关系,以便查询所有子关系?,database,amazon-web-services,nosql,amazon-dynamodb,Database,Amazon Web Services,Nosql,Amazon Dynamodb,DynamoDB中一对多关系的一种常见策略是使用复合主键;一个较宽的分区键作为父级,一个较窄的包含子关系的排序键。数据科学家Alex Debrie举了以下示例: 此策略解决了最常见的检索用例: 检索组织中的所有元数据和用户 检索组织内的所有用户 检索有关组织的元数据 检索组织内的特定用户 我试图解决的用例似乎没有包含在这个模型中。如果要从所有组织检索所有元数据,该怎么办?或者,如果您想了解组织中的所有用户,该怎么办?即使使用全局二级索引,您也别无选择,只能将所有字段拆分为各自的分区;这需要

DynamoDB中一对多关系的一种常见策略是使用复合主键;一个较宽的分区键作为父级,一个较窄的包含子关系的排序键。数据科学家Alex Debrie举了以下示例:

此策略解决了最常见的检索用例:

  • 检索组织中的所有元数据和用户
  • 检索组织内的所有用户
  • 检索有关组织的元数据
  • 检索组织内的特定用户
我试图解决的用例似乎没有包含在这个模型中。如果要从所有组织检索所有元数据,该怎么办?或者,如果您想了解组织中的所有用户,该怎么办?即使使用全局二级索引,您也别无选择,只能将所有字段拆分为各自的分区;这需要扫描才能检索。dynamo是否有任何功能来促进此类检索

  • 要检索所有组织的元数据,可以按以下方式对其建模:各个元数据项的SK不需要包含公司名称。只要给它的价值“元”为每个公司。创建一个将SK用作PK的GSI。通过这种方式,您可以使用PK“META”查询索引中的所有项目

  • 要检索组织中的所有用户,请向所有用户条目添加一个值为“USER”的属性“type”。创建此类型为PK的GSI。这样,您可以使用PK“USER”查询索引中的所有用户