繁体   English   中英

Amazon Dynamo DB - 扫描和更新表记录 - iOS SDK

[英]Amazon Dynamo DB - Scan & Update table records - iOS SDK

是否可以使用单个API扫描和更新DynamoDB表中的记录。 考虑我在Items表中有项目列表,包含字段(ItemID,ItemName,ItemAssigned)。 ItemID是表的哈希键。 项目ID被命名为,Item1,Item2,Item3等。用户将不知道表中的项目是什么。 因此,在应用程序中,如果用户点击“获取项目”按钮,则将获取随机项并将其分配给他。 然后将ItemAssigned设置为YES。 项目标签然后该项目将不会分配给任何其他用户。 这就是发生的事情。

脚步:
1.点击“获取项目”
2.扫描Items表中的第一项,其中ItemAssigned = NO
3.在主屏幕中显示该项目
4.更新Items表中的项目以设置ItemAssigned = YES

如果一个用户一次尝试获取该项,则此方法很有效。 当两个用户A和B同时尝试获取项目时,会出现问题,并且同一项目分配给这两个用户。

所以首先A取这个项目。 在更新Items表以设置ItemAssigned = YES之前,B也会提取相同的项目。 现在,A&B的主屏幕都显示相同的项目。 这是错的。

唯一的方法是使用单个API扫描和更新Items表。 有没有可能在Amazon DynamoDB中执行此操作?

谢谢。

遗憾的是,没有API可以在单个操作中进行扫描和更新。 您可能希望查看条件PUT项,因为这将允许您实现类似签出的功能,这样您只有在 “ItemAssigned = NO”时才能设置“ItemAssigned = YES”。

在处理扫描结果时,您的应用程序代码需要优雅地处理异常,但是允许您请求的工作流程只允许一个用户查看该项目。

PUT项目的API文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM