当前位置: 首页 > news >正文

项目笔记之订单号生成规则以及方法,第一篇!

小伙伴们在日常的商城项目开发中,都会遇到订单号生成的问题,今天呢小编就带领大家去解读一下生成订单号的问题!    首先,订单号我们要明确它有有3个性质:1.唯一性  2.不可推测性3.效率性,唯一性和不可推测性不用说了,效率性是指不能频繁的去数据库查询以避免重复。况且满足这些条件的同时订单号还要足够的短。不知道小伙伴们在日常的项目中是否也和我一样去思考过生成订单的一些小问题,可能你也会说,这些东西不用想的那么复杂,其实呢,小编也是同意大家的看法,但是殊不知我们做程序的都讲究严谨性,而且在订单模块的开发中,订单号的位置相信大家都知道,所以呢,我们在写这些小程序的时候,不妨花上几分钟去思考一下为什么这样去定义!好了,下面就告诉大家生成订单的办法了!    首先,我们生成订单的方式呢:可以采用时间戳加随机数的方式比如:time().rand(10000,99999);这样呢就生成了一个15位的随机数,时间戳呢精确到了毫秒,而后五位随机数,也去除了高并发状况下,订单号重复的情况,当然了我们也可以把时间戳简单的处理一下变成了:date("YmdHis").rand(10000,99999);这样的方式,相信小伙伴们也注意到了我们一直在使用一个rand的PHP的随机数函数,所以呢,当我们去学习PHP的基础的时候,我们遇到随机数的函数的时候,是不是还在想,这个函数到底是有什么用途的呢?现在小伙伴们是不是应该明白了呢!当然了我们还可以将其封装成一个方法,以备我们相似项目中使用,也提高了我们日常代码的可复用性,使我们的代码的效率也提高了不少,那要怎么封装呢,小编给大家写一个简单的小示例:function

get_sn()

{

return date('YmdHis').rand(100000,

999999);}当然了这只是一个简答的小示例,更多更好玩的小程序,还是需要各位小伙伴一起去开发了!最后呢,有什么问题可以联系小编,也可以加入小编的思梦PHP官方群号,我们平时还会有免费的实战课程等着你来观看!小编的联系QQ:476319748备注:微信公众平台   群1:466388300备注:微信公众平台 群2:527490769备注:微信公众平台  欢迎小伙伴的加入!

相关文章:

  • 用好阿里云分析型数据库大存储实例,大幅降低大数据应用成本
  • python 测试驱动开发的简单例子
  • win10 + uefi
  • Nginx负载均衡的详细配置及使用案例详解.
  • JS 全局变量和局部变量
  • CSS中外联样式表代表的含义
  • tomcat、Linux服务器
  • C#网络编程
  • css设置背景固定不滚动效果的示例
  • XML XPATH simpleXML
  • 学习笔记--mysql的AB复制
  • linux ARP攻击处理
  • C语言基础及指针⑥字符操作
  • Permison Denied
  • 文本处理工具与正则表达式、grep
  • hexo+github搭建个人博客
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • Docker: 容器互访的三种方式
  • jquery ajax学习笔记
  • react-native 安卓真机环境搭建
  • swift基础之_对象 实例方法 对象方法。
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 反思总结然后整装待发
  • 记一次和乔布斯合作最难忘的经历
  • 解析带emoji和链接的聊天系统消息
  • 前端攻城师
  • 事件委托的小应用
  • 微信小程序填坑清单
  • 一道面试题引发的“血案”
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 转载:[译] 内容加速黑科技趣谈
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C++20) consteval立即函数
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (一)Neo4j下载安装以及初次使用
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (原)Matlab的svmtrain和svmclassify
  • (原創) 物件導向與老子思想 (OO)
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 表达式计算:Expression Evaluator
  • .stream().map与.stream().flatMap的使用
  • /proc/vmstat 详解
  • @Transactional 竟也能解决分布式事务?
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149