zoukankan      html  css  js  c++  java
  • 订单号的生成

    订单号有3个属性:1.唯一性 2.不可推测性 3.效率性

    唯一性是当中最重要的一个,重复了这个订单号就没有意义。其次就是效率性,反复查找数据库会生成的很慢!

     不规则订单号生成思路:System.currentTimeMillis()+几位随机数,就OK了。System.currentTimeMillis()这个数一般是不会出现同一个的。

    在一些公司的内部系统中可能会要求我们给出一个规则的顺序订单号,比如:年月日+(当前订单数+1),特殊字符串+(当前订单数+1)。因为两个人同时操作时会是同一个订单号,那么为了保证订单号的唯一性,就不能通过查询数据库来找当前订单数(很有可能两个用户在同一时段查数据库,那就是同一个订单啦,没用!)。So,在数据中单独建立一个表来造一个当前订单数(CurrentIndentNum),初始值为0.

    具体的数据库的设计:IndentTB:

    IndentID

                                            Indent

                                            CurrentTime 初始值设定为getdate()

                                            IfUse

                                       CurrentIndentNumTB:

       CurrentIndentNumID

                                            CurrentIndentNum

    在数据库存储过程中用:

    update CurrentIndentNumTB

    begin tran

      set CurrentIndentNum=CurrentIndentNum+1

      select CurrentIndentNum

      from CurrentIndentNumTB

    commit tran

    (begin tran.... commit tran当事务出现异常,回滚到执行事务之前)

    来保证订单的唯一性。

    具体实施:在load事件或$(document).ready 中执行上述过程返回当前订单数到页面。如果取消订单,则标记ifuse为false。

  • 相关阅读:
    黑盒测试用例输入:等价类划分方法
    jar包/class文件如何快速反编译成java文件
    html表格单元格添加斜下框线的方法
    Linux常用命令操作文档
    压力、负载、性能测试工具总结(持续更新。。。)
    压力测试、负载测试及性能测试异同
    Mac os x安装IDEAL及配置JDK和Maven
    RMQ问题总结,标准RMQ算法的实现
    [c++ IO加速]快速输入输出
    [coj 1353 Guessing the Number]kmp,字符串最小表示法
  • 原文地址:https://www.cnblogs.com/silenceCorner/p/4148023.html
Copyright © 2011-2022 走看看