MySQL数据库ID

时间:2013-09-16 14:36:23

标签: php mysql database timestamp

我正在创建一个网站,将更新贡献者帖子,评论等等,我想知道创建id的最佳方法,以防止在任何表中出现重复。我现在正在使用时间戳以及最后一个唯一的数字,例如:

$time = time();
$id= time().'-'.mt_rand(1000, 9999);

输出:

  

1378291391-1167,1378294733-8990,1378294934-3336等,等等。

任何人都可以看到此类ID创建系统出现问题吗?

2 个答案:

答案 0 :(得分:1)

我会通过使用

来增加唯一性
  • microtime()而不是time()

  • 如果允许字符串,请使用uniqid()函数附加microtime

  • 并使用值较大的mt_rand(mt_rand(0, 10000000)

http://php.net/manual/en/function.uniqid.php

http://fi2.php.net/microtime

答案 1 :(得分:-1)

使用自动增量如下:

CREATE TABLE tablename(
     id MEDIUMINT NOT NULL AUTO_INCREMENT,
     col1 CHAR(30) NOT NULL,
     PRIMARY KEY (id)
) ENGINE=MyISAM;

来源:http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html