【问题标题】:Incremental alphanumeric Primary Key增量字母数字主键
【发布时间】:2012-10-31 15:44:40
【问题描述】:

您好,我想在我的一张表中添加一个增量字母数字键(主键)。我希望它是 BR10000、BR10001、BR10002 等等。有任何想法吗?我在google上做了一些研究,但我发现对于像我这样的初学者来说很难理解。因此,任何可以帮助入门的建议或任何事情都非常感谢。谢谢。

【问题讨论】:

  • 为什么不使用 2 个列?
  • 当您说表格时,您是在谈论数据库吗?为什么你特别需要存储“BR”前缀?您不能将其定义为您的应用程序的常量,然后为您的主键列使用 auto_increment(通常称为id)并在需要显示时加入它们?
  • 只保存您想要检查的号码,添加前缀为BR
  • @Stephen 是的,我的意思是 DB,我喜欢你的想法,但我想要的是引用带有 BR 前缀的 PK。当我搜索预订参考号时,假设为 BR10012,如果数字仅存储在数据库中,它将如何查找?谢谢
  • @Stephen 因为他想在数据库端处理它。见上面的 cmets。

标签: php sql key auto-generate alphanumeric


【解决方案1】:

将记录存储在数据库中,该记录的主键(通常是 ID 列)成为数字部分。当您将其显示给用户时,您只需根据需要对其进行格式化,例如:

$a = sprintf('BR%06d', 135);

var_dump($a); //string(8) "BR000135"

当您想从用户输入中查找记录时,您只需在进行查询之前去掉“BR”,例如:

sscanf($a, 'BR%06d', $id);

var_dump($id); //int(135)

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多