如何创建唯一的订单号

时间:2010-01-27 17:55:59

标签: algorithm database-design uniqueidentifier

从算法上讲,我如何为SQL Server列生成唯一的,人类可读的,合理加长的订单号。唯一的要求是它引用了客户编号,可以通过电话轻松重复。

类似的东西:

  • 客户编号 - XXXXXXXX - XXXXXXXX

RT65-XXXXXXXX-XXXXXXXX

我如何生成XXXXXXXX? (使用随机的字母数字数据,然后检查它是否实际上是重复的?)

生成这些类型的数字时,最好的方法/注意事项是什么?

你是如何在你的申请中做到这一点的?

4 个答案:

答案 0 :(得分:1)

使用标识列和填充零。

改变开始值和增量值。

(可选)添加CRC校验位。

答案 1 :(得分:1)

查看这些帖子,几乎完全相同的问题。两者中真正的好数据(我之前使用过它们):

A good algorithm for generating an order number

What is the best format for a customer number, order number?

答案 2 :(得分:1)

这很傻但很直接, 怎么样  yyyymmddhhmmss

并将其与

一起使用

RT65-XXXXXXXX-XXXXXXXX

答案 3 :(得分:0)

在php中,您可以执行以下操作:

<?php 
$stamp = strtotime("now");
$orderid = 'RT65-'.$stamp.'-'.$REMOTE_ADDR; 
$orderid = str_replace(".", "", $orderid); 
echo($orderid); 
?>