数据库 – 防止重复提交的最佳设计模式是什么?

我有一个关于如何最好地防止重复发布数据的设计模式.

以下是步骤:

>客户端使用唯一的guid提交数据(客户端生成的guid – 保证唯一)
>服务器端软件确保数据库中尚不存在客户端指南
>开始交易
>过程数据(取决于有效负载,可能需要1-20秒)
>提交交易

以下是场景:
客户端使用guid“1”提交数据,然后在执行原始数据提交的步骤(5)之前使用guid“1”重新提交数据,然后处理事务两次.

不使用信号量或阻塞来防止这种情况的最佳设计模式是什么?如果由于某种原因(服务器端的硬件问题等)第一次提交失败,用户应该能够重新提交.

谢谢!

最佳答案 将GUID存储在具有SQL UNIQUE约束的列中.

当您尝试(在事务中)插入第二个重复的GUID时,操作将失败,此时您将回滚整个事务.

点赞