基于字母代码的 PHP/SQL ID

标签 php mysql sql database pdo

如果我在信息前面加上以下内容可能会有所帮助:这是一个股票股东数据库。新的行/线相当于公司的新股东。旧系统中的每个股东都有一个所谓的股东号,长度正好是六个字符,前面有零。

我的直接问题是:如何为所有新插入的行提供唯一的 ID,该 ID 也将根据其中一行按字母顺序排列。 我需要插入新名称,并使其 ID 的顺序与名称的字母顺序相同。

详细信息:

我正在将几十年前的数据库导入到新的 PHP 程序中。当在旧系统中添加一行时,它会获取一个人名,将其与一个数字链接起来,然后将其放入。有问题的是整个字母系统是按 ID 排序的,而不是直接根据姓名排序。

基本上,姓“Afrebos”的人的 ID 类似于 032500;姓“Williams”的人的 ID 类似于 895573;姓“Zeta”的人会是 985000。数据库似乎不认识字母表,完全依赖于 ID 号的顺序。

我正在制作的新系统将按名称排序,不再需要这些数字。然而,我的老板想继续使用这些旧号码(它们与其他公司的系统相关)。从现在开始,当添加行时,我可以选择随机的唯一数字,但为了清洁和专业,我希望继续以多年来的方式组织一切。

关于如何使用 PHP/SQL/PDO 做到这一点有什么想法吗?任何帮助都将非常感激。

最佳答案

SQL 可以按 varchar 列(例如名称)快速排序(即按字母顺序),尤其是在您对该列建立索引的情况下。

我会更改您的表以包含自动增量 id 并将旧 id 存储在单独的列中,如果新条目不需要可比较的 id,甚至是单独的表,但您也可以保留原始 id您的主键列,并为每个新条目选择一个随机未使用的值。

关于基于字母代码的 PHP/SQL ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27785093/

相关文章:

php - 在magento中将http上的整个页面重定向到https

Mysql内连接顺序第二个表

sql - 根据条件将数据从一个表传输到另一个表

mysql - SQL 查询中的案例?

PHP 字符串与 Mysql 的比较 Like %

PHP 在不同位置显示前 4 行

java - SQL 返回解密的密码

MySQL 想用 UNION 求和两列

php - 分析仪表板策略

php - Markdown(带有 strip_tags)是否足以阻止 XSS 攻击?