DynamoDB自动增加ID和服务器时间(iOS SDK)

Emp*_*ack 10 objective-c amazon-web-services ios amazon-dynamodb

DynammoDB中是否有一个选项可以将自动递增的ID存储为表中的主键?我还需要将服务器时间存储在表中作为"创建时"字段(例如,用户创建时).但我没有找到任何方法从DynamoDB或任何其他AWS服务获得服务器时间.

你们能帮助我吗

  1. 在DyanmoDB表中使用自动递增的ID
  2. 在"创建于"字段的表中存储服务器时间.

谢谢.

yad*_*taf 9

实际上,DynamoDB中的功能很少,这正是它的主要优势.简单.

  • 无法自动生成ID或UUID.
  • 无法自动生成日期

对于"日期"问题,应该很容易在客户端生成它.我可以建议您使用ISO 8601日期格式吗?它既是程序员又是计算机友好的.

大多数情况下,有一种比使用项目的自动ID更好的方法.这通常是SQL或MongoDB世界的坏习惯.例如,电子邮件或登录将为用户提供完美的ID.但我知道ID可能有用的特定情况.

在这些情况下,您需要构建自己的系统.在本回答以及DynamoDB-Mapper文档中的这篇文章中,我将解释如何执行此操作.我希望它有所帮助


Cor*_*all 7

不要使用自动递增的ID,而应考虑使用GUID.您可以获得更高的理论吞吐量和更好的故障处理能力,并且您唯一丢失的是自然时间顺序,这可以通过日期更好地处理.

更高的吞吐量,因为您不需要让Dynamo生成下一个可用的ID(这需要一些资源来获取锁定,获取一些数字,并确保没有其他任何东西获得这些数字).当您失去与Dynamo的连接时,会发生更好的故障处理(Dynamo发生故障,或者您是突发性的,并且您的应用程序正在执行比当前预配置的吞吐量更多的工作).只写应用程序可以继续"工作"并生成包含ID的数据,将其排队以写入发电机,从不担心ID冲突.