0

在阅读了 Stackoverflow 上的可能选项后,我没有看到我正在考虑的确切情况的答案......

案例:我有一个自动生成与 mysql 连接的模板的 php 系统。

为了使系统正常工作,我需要每个生成的模板在创建时分配一个唯一的 6 位整数。而不是弄乱随机发生器等......

A)我可以简单地在数据库中创建一个名为'pageid'的表,int(11)/唯一/自动增量,起始值为100000,然后在模板创建过程中,只需在此表上执行插入,然后'选择 last_insert_id()' 来提取最后一个值,然后在创建模板时将其注入到模板中?(换句话说,该表的唯一功能是生成并返回最后一个唯一 ID)。

B)如果是这样,我应该担心使用这种方法有什么问题吗?(除了这意味着只能生成 899,999 个模板的限制——在这种情况下这不是问题)。

任何想法或更好的方法表示赞赏......

4

1 回答 1

0
  1. 我可以简单地在数据库中创建一个名为“pageid”的表,int(11) / unique / autoincrement 起始值为 100000,然后在模板创建过程中,只需在该表上执行插入,然后选择 last_insert_id ()' 提取最后一个值,然后在创建模板时将其注入到模板中?(换句话说,该表的唯一功能是生成并返回最后一个唯一 ID)。

    是的:

    CREATE TABLE pages (
      pageid MEDIUMINT(6) NOT NULL AUTO_INCREMENT PRIMARY KEY
    ) AUTO_INCREMENT = 100000;
    

    请注意,我正在使用MEDIUMINT(6)它,因为它需要的存储空间比它少 1 个字节,INT并且具有更适合您需要的显示宽度。

  2. 如果是这样,我应该担心使用这种方法有什么问题吗?(除了这意味着只能生成 899,999 个模板的限制——在这种情况下这不是问题)。

    相反,您可以只在templates表中拥有该列,并在id插入新记录时自动分配。

于 2012-09-03T23:05:03.557 回答