循环分配

时间:2018-05-09 07:37:40

标签: php mysql

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

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

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行),它应该循环回到开头,将第一个数字分配给下一个插入的用户。

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

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

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

感谢。

1 个答案:

答案 0 :(得分:1)

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

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

ALTER TABLE tablename AUTO_INCREMENT = 115552300

然后你可以确定没有任何重复。

您好像正在使用ID和此“号码”字段。您还应该考虑使用UUID,然后为您提供数据库范围的唯一值。 Docs here

相关问题