【问题标题】:Generation of Referral or coupon code生成推荐或优惠券代码
【发布时间】:2015-07-03 19:42:55
【问题描述】:

如何为用户生成可读的推荐代码。我正在使用 Java 7 编程语言和 MySQL 数据库。我从一周开始就在寻找这个,但没有得到合适的解决方案。 任何帮助将不胜感激。提前致谢。

【问题讨论】:

  • 你想要什么样的推荐码。如果你再详细一点,那将帮助我们大多数人一百万
  • 分享应用,每个用户都有自己唯一的推荐码
  • 你想生成类似优惠券代码的东西吗?
  • @ZishanMohsin 我的意思是 alphanumeric/numeric ,以及 MySql db 必须在其中做什么。您在这里使用哪个数据库是否重要?
  • 是字母数字。我提到 db 名称是因为我认为 MySQL 可能具有某种我不知道的特性。

标签: java mysql spring


【解决方案1】:

为了保持唯一性保持codeLength尽可能大意味着至少68。您也可以在chars 数组中包含大写字母,这样随着可以提供更多组合,也可以增加唯一性。还包括大写字母,理想情况下,您最多可以提供 64^8 个唯一随机代码。

   public String createRandomCode(int codeLength){   
     char[] chars = "abcdefghijklmnopqrstuvwxyz1234567890".toCharArray();
        StringBuilder sb = new StringBuilder();
        Random random = new SecureRandom();
        for (int i = 0; i < codeLength; i++) {
            char c = chars[random.nextInt(chars.length)];
            sb.append(c);
        }
        String output = sb.toString();
        System.out.println(output);
        return output ;
    }

【讨论】:

  • 使用上述代码可以生成多少个随机且唯一的代码?
  • 无法准确提供数字,但最好将charscodeLength 保持尽可能大。
  • 你知道 ola、snapdeal 应用吗?他们如何处理每个用户的推荐代码?甚至他们的代码长度也不超过8个字符
  • 我不在上述任何一家公司工作。但很可能是在 Java 方面。他们也可能使用相同/相似的逻辑
  • 包含大写字母和代码长度为8后,您的代码最多可以提供1097759个随机代码,不保证唯一性。
猜你喜欢
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 2013-04-22
  • 2012-01-03
  • 2018-07-03
相关资源
最近更新 更多