【问题标题】:Generating Unique Receipt Codes in Laravel在 Laravel 中生成唯一的收据代码
【发布时间】:2016-04-21 16:34:59
【问题描述】:

您好,在我的 laravel 应用程序中,我有一个函数可以在客户完成交易时生成唯一的收据代码。

这是代码的格式: 1. 4 位商店标识符,例如。 ABCD 2. 购买物品的类型或类别。例如。 E 表示电子产品,T 表示玩具 3.特殊的秘密两位数字代码,例如。可以在 0110 之间。 4. 非常短格式的日期。例如。 31J16 表示 2016 年 1 月 31 日 5. 客户用于支持问题或退货的四位数代码。例如。 3267。这是随机生成的。

所以示例如下所示:ABCDT0131J163267 总长度为 16 个字符。

现在我想做的是每次生成代码时确保它在我的数据库中不存在,如果是,那么它应该生成一个新的,依此类推,直到它产生一个唯一的代码。

现在我的问题是获得一个高效的解决方案,它不会像我打算做的那样生成独特的代码,最终不会循环很多次。

【问题讨论】:

  • 你有什么问题?我们不会为您编写代码。
  • 谢谢您,先生,我知道这一点。如前所述,我的问题是一种有效执行此操作的方法,同时避免循环多次并在每个循环上执行数据库调用以检查代码是否存在,如果存在则生成新代码。
  • 您将不得不进行数据库调用。它必须循环的机会取决于您的四位数代码的大小以及您平均每天的订单数量。如果您希望它循环更少,请增加该代码的长度,这样您就不太可能发生冲突。

标签: laravel laravel-5.1


【解决方案1】:

好的,所以我想到了一些可以让我在第一个循环中只进行一次数据库调用的方法。我将所有现有代码从数据库中获取到一个列表中,然后我使用函数in_array() 来检查列表,如果它存在,它会生成一个新代码。

唯一的缺点是,如果在生成列表后进行交易,特定代码将不会成为列表的一部分。

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 2010-09-18
    • 2023-03-22
    • 2011-08-19
    • 2013-05-04
    • 2019-06-17
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多