我正准备启动我在ASP.NET中设计的网站。
问题是,我不希望我的客户拥有超低订单ID(例如:#00000001)。
如何生成唯一(和随机)订单ID,以便客户获得订单号,如K20434034?
答案 0 :(得分:1)
业务层和数据库都有多个选项:
Int64
生成的RNGCryptoServiceProvider
碰撞或可预测性的可能性非常低)UNIQUEIDENTIFIER
(或System.Guid
)和base 62编码字节答案 1 :(得分:1)
将OrderId的标识种子设置为大号。然后,当您向用户提供订单号时,您可以拥有一个前缀为订单ID的常量(就像所有订单以K开头),或者您可以生成随机字符串并将其存储在订单记录中。
答案 2 :(得分:0)
如果你关心的是他们不认为这个数字很低,我建议你以更高的数字开始身份种子。随机问题是总是存在冲突的可能性,并且随着现有订单ID数量的增加,检查重复项会变得越来越昂贵。
答案 3 :(得分:0)
将列数据类型设为UNIQUEIDENTIFIER。此数据类型将以下面提到的格式提供ID。希望这能满足需要。
B85E62C3-DC56-40C0-852A-49F759AC68FB。