Amazon web services 如何在DynamoDB中保存非重叠范围
假设我想在DynamoDB中存储一些实体,每个实体由3个关键属性定义:Amazon web services 如何在DynamoDB中保存非重叠范围,amazon-web-services,amazon-dynamodb,overlap,nosql,Amazon Web Services,Amazon Dynamodb,Overlap,Nosql,假设我想在DynamoDB中存储一些实体,每个实体由3个关键属性定义: group\u id[string]:实体所属组的id from[int]:范围的起点(包括) to[int]:范围的末尾(包括) 约束条件是: 在一个组中,重叠范围是不允许的 但是,跨组允许重叠 以下是几个条目示例: (“abc”,10,21) (“xyz”,13,27) (“xyz”,45,61) (“abc”,39,57) (“abc”,81,93) 如您所见,上面列表中的组内没有重叠范围。现在,如果我们想
[group\u id
]:实体所属组的idstring
[from
]:范围的起点(包括)int
[to
]:范围的末尾(包括)int
- 在一个组中,重叠范围是不允许的
- 但是,跨组允许重叠
- (
,“abc”
,10
)21
- (
,“xyz”
,13
)27
- (
,“xyz”
,45
)61
- (
,“abc”
,39
)57
- (
,“abc”
,81
)93
- (
,“abc”
,19
)不允许,因为它与第一项重叠27
- 允许使用(
,“abc”
,23
)27
- (
,“xyz”
,39
)不允许,因为它与第三项重叠李>47
- 允许使用(
,“xyz”
,39
)55
- 给定一个
和一个超级范围{组id
和from
},返回所有具有相同to
且组id
和from
在超级范围(包括)定义的限制内的条目to
具体来说,根据上面列出的查询决定分区键、范围键、辅助索引(本地/辅助)的选项有哪些?步骤1-创建分区键(组id),范围键打开(从,到)
步骤2-需要在应用程序级别限制from、to字段。”在dynamodb的数据库级别上,启用此功能的“检查约束”不可用。步骤1-创建分区键(组id),范围键打开(从,到)
步骤2-需要在应用程序级别限制from、to字段。”在dynamodb中,启用此功能的check constraints在数据库级别不可用。一种方法是使用组id作为主键,使用“from”作为范围键,“to”作为辅助范围键(本地辅助索引)。 然后,每次要检查范围在x和y之间的新项目时,都需要执行以下检查:
请注意,如果您的范围选项有限(例如范围只能在1和365之间),则可以使用更简单的解决方案一种方法是使用组id作为主键,使用“from”作为范围键,“to”作为辅助范围键(本地辅助索引)。 然后,每次要检查范围在x和y之间的新项目时,都需要执行以下检查: