|
|
1
8
如果中间层不能检查数据库中已经存在什么“订单号”,那么它所能做的最好的工作就是生成一个随机数。但是,如果生成的随机数限制在10亿以下,那么应该开始担心周围的意外碰撞。
|
|
|
2
5
<呜呜,好吧,听起来像是一个典型的过早优化案例。你可以想象一个性能问题(哦,天哪,我必须访问-恐怖-数据库才能获得订单号!我的可能会很慢),最后是一堆复杂的psuedo随机生成器和一大堆重复的处理代码。 一个简单实用的答案是为每个客户运行一个序列。实际订单号是客户号和订单号的组合。您可以轻松检索检索有关客户的其他信息时使用的最后一个序列。 |
|
|
3
2
一个简单的选择是使用日期和时间,例如0912012359,如果在同一分钟内收到两个订单,只需将第二个订单增加一分钟(如果时间用完,这不重要,它只是一个订单号)。 如果您不希望日期可见,则将其计算为固定时间点后的分钟数,例如,当您开始接受订单或其他任意日期时。同样,使用重复检查/增量。 您的竞争对手不会从中获得任何信息,而且很容易实现。 |
|
|
4
1
|
|
|
5
1
一种解决方案是获取订单中某个字段的散列值。这不能保证它与所有其他订单的订单号都是唯一的,但是发生冲突的可能性非常低。我可以想象,如果不“往返数据库”,确保订单号是唯一的将是一个挑战。 如果你不熟悉散列函数,维基百科页面是相当不错的。 |
|
|
6
1
您可以base64编码一个guid。这将满足除“仅数值”要求之外的所有标准。 但实际上 对的 这里要做的是让数据库生成订单号。这可能意味着创建一个订单 模板 在用户保存订单号之前实际上没有订单号的记录,或者它可能正在添加创建 空的 (但可能是未承诺的)命令。 |
|
|
7
1
使用原始多项式作为有限域生成器。 |
|
|
8
1
你的10位数要求是一个巨大的限制。考虑两阶段的方法。
您将对哈希值进行多次点击。但没那么多。客户服务人员可以很容易地根据客户提供的附加信息确定有问题的订单。 |
|
|
9
0
对大多数要点的直接回答是: 使前六位数字成为按顺序递增的字段,并将哈希的三位数字追加到末尾。或者七加二,或者八加一,这取决于你想象中需要支持的订单数量。 但是,您仍然需要在后端调用一个函数来保留一个新的订单号;否则,就无法保证不会发生冲突,因为数字太少了。 |
|
|
10
0
我们做TTT-CCCCC-1A-N1。
|
|
|
Muhammad Umer · 为什么这个随机数猜谜游戏模拟产生5.8 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
D W · Python-将浮点数从2转换为10到100位小数 1 年前 |
|
|
Bartol · 确定python龟图形中的角度 2 年前 |
|
|
randomAlgo · 将弹簧设置为相同长度的成本最低 2 年前 |
|
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 2 年前 |
|
Sergio · python中大量数字的乘法 2 年前 |