php 订单号方案,重复的可能性要很低很低很低,大家说说自己的方案。

2014-10-26 18:23:52 +08:00
 444683462
php订单号方案,重复的可能性要很低很低很低,大家说说自己的方案。
5930 次点击
所在节点    问与答
44 条回复
abelyao
2014-10-26 18:53:00 +08:00
有长度要求吗?有排序要求吗?纯数字还说可英文?并发量估计会去到多少?
bystand3r
2014-10-26 19:14:58 +08:00
同楼上……你的格式要求呢……给你来个1024位的?
sy1989
2014-10-26 19:37:29 +08:00
mysql 的自增好了
arslion
2014-10-26 19:40:32 +08:00
@sy1989 +1
vibbow
2014-10-26 19:47:15 +08:00
用 UUID
imn1
2014-10-26 19:47:15 +08:00
类别+时间+随机数
yylzcom
2014-10-26 19:51:01 +08:00
timestamp+userid(+random number)
xiaoyaoking
2014-10-26 19:54:34 +08:00
7 楼正解, 其实 timestamp 就不会重复了。。 想要长度就 timestamp md5 妥妥的。
orvice
2014-10-26 19:57:45 +08:00
时间(精确到秒)+随机数基本就可以了吧
spance
2014-10-26 20:00:11 +08:00
PHP很难做到。

不要为了一个没有前景的语言徒劳奔命。更何况,php还不能算是一个完整的语言。

首先,语言层面就没有线程、锁、信号量、原子CAS等等这些很基本的东西,更缺乏体系规范,php5开始搞伪伪伪面向对象,学不像更鸡肋,还有那么多对C函数的简单包装。。。

除了最近本CRUD外,稍微复杂的业务逻辑or业务系统是没法用php实现的。除了搞搞简单页面输出,真看不出这玩意还有啥难能可贵的地方。

不要在本就不长的人生路上浪费时间。
polythene
2014-10-26 20:02:58 +08:00
@spance 啊!!PHP才是世界上最好的语言,嘿嘿。
barbery
2014-10-26 20:13:11 +08:00
mysql主键自增 或者redis counter
aveline
2014-10-26 20:24:34 +08:00
uniqid()
lch21
2014-10-26 21:37:43 +08:00
uniqid() +1
xoxo
2014-10-26 21:40:20 +08:00
md5( auto_increament_id + salt );
anewg
2014-10-26 21:41:09 +08:00
@spance 你也是挺逗的,人家来求解决业务需求,你来给人家人生忠告。一个 uniqid() 就解决的事,难不成让他跟老板说“没有信号量、原子CAS很难做到,不要在本就不长的人生路上浪费时间,老板我们换个语言不?”
xoxo
2014-10-26 21:42:14 +08:00
@xoxo by the way, https://sslcertificate.cn的系统就是采用 md5( auto_increament_id + salt ) 的方式,其它既然不能猜到使用量,也不防止了碰撞
spance
2014-10-26 21:52:47 +08:00
@anewg
有的时候领悟领悟人生忠告比研究研究某方法要来的透彻来的深刻。
用php玩高并发玩金融相关,结果是怎么死的你都不知道。
当然,玩玩什么wordpress之类小玩意是没有问题的。
laotaitai
2014-10-26 22:03:57 +08:00
@spance
半吊子水才说得出这样的话.
curiousjude
2014-10-26 22:05:22 +08:00
@spance 那你倒是说说解决方案啊。你这种答案说得好听叫没有帮助,说得不好听叫制造噪音。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141637

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX