【发布时间】:2011-03-18 03:25:03
【问题描述】:
我的应用程序创建的优惠券每张都需要一个唯一的条形码编号。此数字必须是正整数,并且必须介于 6 到 12 位之间。这个数字代表一个唯一的优惠券,所以这个数字必须是唯一的。我不能简单地将条形码编号加 1,因为这样会让黑客很容易猜到其他优惠券条形码。
如果我有一张优惠券db表,如何生成这个随机条码号并保证唯一性?
【问题讨论】:
-
回答问题的第二部分,似乎只能通过对优惠券表的数字进行测试才能保证唯一性。
-
唯一性必须通过唯一索引来保证,插入例程必须考虑到可能的唯一性违规重新生成优惠券编号并重试。使用@Richard 提出的解决方案,碰撞概率将非常低,因为 UID 设计得非常好。
标签: sql sql-server database tsql math