SimpleDB中是否有等同于身份种子的种子?
如果答案是否定的,您将如何处理类似客户编号或订单编号这样的内容,以防止创建重复编号?
我的经验主要来自SQL Server,在SQL Server中,我将使用身份种子创建主键,或者在存储过程中使用事务来增加数量。
谢谢你的帮助!
最佳答案
您可以使用条件写入来创建唯一键。只需使用您要使用的下一个客户编号和要存储的数据进行PutAttributes即可。您不能为实际商品名称添加条件,但可以使用始终存在的属性(例如创建日期或用户组)。
设置条件:
Expected.1.Name=creation_date
Expected.1.Exists=false
仅当具有该项目名称的项目中没有creation_date时,该调用才会成功。如果您始终编写creation_date,则可以对新项目名称获得乐观锁定的效果。当然,您可以使用所需的任何属性,因此只要您始终将其包括在第一个条件看跌期权中即可。
在大多数情况下,条件写入的性能与普通写入相同,但是当SimpleDB处于高负载或高内部网络等待时间的情况下,与普通写入相比,这些调用将花费更长的时间。在SimpleDB内部发生罕见故障的情况下,条件写入将在一段时间内完全失败。
如果您不能忍受这一点,则必须编写某种替代方法,以在中断期间获取唯一 key 。不同的SimpleDB区域只能用于生成 key ,因为在中断期间,SimpleDB仍将接受常规写入(无条件PutAttributes)。
关于amazon-simpledb - 等同于Amazon SimpleDB Identity Seed,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2613434/