具有自动增量的用户可表格ID

时间:2012-11-30 06:45:15

标签: php mysql

我正在创建一个需要存储项目ID的应用程序(在MySql DB中)。 Admin用户应该能够在创建任何项目之前设置ID号的格式(#####,## - ####,YY - ## - ####等)...当然。 ID也必须自动执行。当普通用户创建新项目时。

我认为通过读取最后一条记录并添加1,必须使用PHP完成自动增量。

由于ID格式将由用户定义,我认为它可能必须是单个字段(varchar?)。或者应用程序是否应创建多个字段以适应用户定义的格式?有什么想法吗?

寻找任何想法......

1 个答案:

答案 0 :(得分:0)

读取前一个id并且只增加1的问题是您可能会重复使用相同的ID。考虑:

  • 您创建一个新项目,该项目从前一个项目获取其ID。
  • 您使用并可能分发项目ID
  • 您决定不想要该项目,并将其删除
  • 您创建了一个新项目。新项目将与旧的已删除项目具有相同的ID,因为它是通过递增相同的源来获得的。

如果这对您来说不是问题,那么这就是您的解决方案。

否则,你可以试试这个:

  • 在表格中创建两列 - 一列用于ID,另一列用于自动递增整数。
  • 创建项目时,请勿添加ID。整数值将自动增量
  • 获取整数值(可能使用mysql_insert_id)
  • 使用自动增量整数
  • 生成的ID更新项目

这对系统来说是更多的努力,并且在极高的容量下你可能会遇到竞争条件,但是如果你在项目ID上添加一个唯一索引,那么应该会遇到任何问题。