我正在为一个家谱项目创建一个 Web 应用程序。我希望添加到数据库中的每个人都有一个唯一的 ID,该 ID 基于其姓氏的前 3 个字符(为了解释起见,我们称之为“姓氏字符串”),并与自动增量(从00001 代表每个唯一的“姓氏字符串”)。
例如 - 一个人的姓氏是“Smith”。姓氏字符串将为 SMI,并且由于它们是第一个姓氏字符串“SMI”,因此完整参考将为 SMI00001。另一个人的姓氏是 Black,因此他们的姓氏字符串为 BLA,并且因为他们是第一个具有姓氏字符串 BLA 的人,所以他们的参考将是 BLA00001。第三个人的姓氏也是 Smith - 他们是第二个具有 SMI 姓氏字符串的人,因此他们的参考号应该是 SMI00002。
此唯一 ID 将在人员 URL 中使用,供数据库中的人员搜索并在人员之间创建关系。
我不知道如何从逻辑上解决这个问题。
我还没有尝试过任何东西。这超出了我的想象!
P粉2259617492023-12-28 00:08:17
此方法比较粗略,通常您应该使用数据库自动递增(数字)或自动生成唯一 ID,例如 md5(time().'randomsalt'.$username)。
但是如果您必须使用 XXX00000 格式,您将需要以下功能:
一段时间后这会非常慢,而且每个名字最多有 99999 次存在的机会,之后你需要将 BLA 更改为 BL1、BL2 等。