循环分配

问题描述 投票:0回答:1

我正在试图将一组数字分配和循环给尚未分配数字的个人。

例如,我有一个表“数字”,其中包含以下固定数字:

numbers
------------------
id       number
------------------
1        115552300
2        115552301
3        115552302
4        115552303
5        115552304

然后我有一个表“users”,其结构如下:

users
----------------------------------------------------
id       name        surname        number
----------------------------------------------------
1        John        Doe            115552300
2        Jane        Doe            115552301

创建用户时,行中的下一个数字应自动分配给新用户。因此,如果插入新行,则行数据可能如下:

3        Bob         Dylan          115552302

一旦序列命中最后一个数字(第5行),它应该循环回到开头,将第一个数字分配给下一个插入的用户。

在我看来,这似乎类似于循环算法;但是,我希望在一次尝试以循环模式分配数字时,不要多次查询数据库,从而最大限度地减少资源使用。

我在尝试实现这个概念时遇到了困难。

我希望有人能指出我正确的方向。

谢谢。

php mysql
1个回答
1
投票

有点难以分辨你的实际用例是什么(你为什么要分配一个数字?),但就个人而言,我会尝试使用数据库的自动增量来做到这一点。

如果你想从一个特定的数字开始,你可以告诉(在这种情况下是mysql)它从一个数字开始。

ALTER TABLE tablename AUTO_INCREMENT = 115552300

那么你可以确定没有任何重复。

你似乎在使用一个ID和这个'数字'字段。您还应该考虑使用UUID,然后为您提供数据库范围的唯一值。 Docs here

© www.soinside.com 2019 - 2024. All rights reserved.