2

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

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

输出:

1378291391-1167、1378294733-8990、1378294934-3336等等等等等等

任何人都可以看到这种类型的 id 创建系统有问题吗?

4

2 回答 2

2

我会通过使用来增加独特性

  • microtime() 代替time()

  • 如果允许使用字符串,则将微时间附加到uniqid()函数

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

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

http://fi2.php.net/microtime

于 2013-09-16T14:44:35.620 回答
-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

于 2013-09-16T14:40:21.510 回答