用数字加大小写字母实现订单号的生成


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,和纯数字实现订单号,因为要保持唯一性,故一般按时间来生成果如:09 04 23 08 26 12 + 随机数字 12 56
优势在于快速,简单, 不利处在于生成的单号长度过长,不便于记录,宜出错。

2,数字加字母方式: 数字0~9,字母a~Z, 共62个字符,对于1种方式生成的单号,可以两位对应一个字符来实现。
实现方式:
? (1)定义一个数组,s[62] :s[0] =”A”, …s[25]=”Z”, s[26]=”0″…s[35]=”9″,s[36]=”a”,…s[61]=”z”
? (2)对应 09 04 23 08 26 12 12 56
????????????????? J?? E? X?? I??? 0?? M? M u
????????? 这样16位长度的订单号就转为8位就可完成表示。
????????? 09 04 23 08 26? 年,月,日,时,分,秒因最大都小于61,故以上可完全表示(ps:年的话,要考虑一个系统?? 很少可能从09年用到61年)
???????? 对于加的四位随机数, 按两位对应一个字符的方式,它的范围从00-99,可能就会随机出大于61的数字,
这样的话可以用? | a – 61? | 因0 < a < 99, 故 | a – 61 | <= 61 ( ps:有可能随机数字相同,不过在同天同时同分同秒随机出相同数字字符的概率非常之小,可忽略不计。 )