• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 生成优惠券码方案

生成优惠券码方案

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了微信优惠券活动方案,优惠券发放方案,优惠券使用方案,优惠券方案,优惠券活动方案等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:生成优惠券码方案
描述:

项目中遇到需要生成唯一券码的方案.目前有两种生成券码的方案 :

A. 提前生成一批券码(数据库中该字段添加唯一索引),这样保证了券码的唯一性,通过后台脚本预判断券码数量小于某个值,重新生成一批券码

B. 结合redis的方案, 通过redis 设置游标, 以八位的券码为例, 找出最大的八位质数,然后通过质数算法 和 游标 计算出八位的券码,但是该方法不能保证的券码的唯一性 有可能出现重复

A 方案能保证唯一 但是维护困难 B方案不能保证唯一性

大家还有什么好的算法推荐吗?


解决方案1:

可以用redis的自增操作,是原子性的,不会重复;如果长些也行就用uuid

解决方案2:

跟时间有关的东西就会是唯一的吧

解决方案3:

时间戳,随机数,哈希函数,用户信息(例如用户的ID,请求的IP什么的)等等……
看具体情况,组合起来用,基本可以实现每次生成的券码不重复。
如果要求比较高,可以建个表,建唯一索引,生成之后试着插入进去就能验证是否重复了。
(如果重复了,就再重新生成随机数,重新计算生成一次就好了。)
提前算什么的,代码复杂,且逗比,还是需要的时候即时计算比较好。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 生成优惠券码方案

相关文章

  • 2017-06-07 python有哪些方法可以获取到文件的创建时间
  • 2017-06-07 跪求一个可以实现一键上传和下载的插件,急急急!!!18253169690@163com
  • 2017-06-07 flask报了个这样的错是为什么
  • 2017-06-07 (shell)bat里怎么取得当前目录不带上级路径
  • 2017-06-07 laravel中一对多的问题
  • 2017-06-07 python发送邮件时如何设置昵称的问题?
  • 2017-06-07 七牛java上传图片回调时,有时候会出现回调多次的情况,如何解决?
  • 2017-06-07 redis的zslRandomLevel函数的实现原理是什么?
  • 2017-06-07 laravel的授权问题
  • 2017-06-07 google搜索结果只能获取10页

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • (python)invalidliteralforintwithbase10:'\x03\xda\x01'神奇的报错!
    • 一个正则表达式,看不懂
    • 一道算法题,用python初始化一颗二叉树并求解其最短路径的值
    • 用python编程怎样返回一段文字里面想要查看的词组呢
    • 有没有办法禁用aspnet中的这两种语言JScriptNetVBNET?
    • (shell)linux下的网卡启动后,如何自动加载脚本文件?
    • python爬虫Python里怎么实现dowhile?
    • 分享:JBossWeb和Tomcat的区别
    • 北京联通子域名DNS解析失败!
    • laravel4队列使用beanstalkd,如何在failed时记录到failed_job表

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有