关于mysql的id主键类型问题--id不止可以使用int型

数据库 php 数据库 1740      收藏
想起自己当初去一家公司面试的时候,人家出了一道题:“建表的时候除了使用int自增作为主键,你还用什么作为主键?”。过去很长时间了,突然想起来,当初没能答好,现在就把这个问题也分享一下

想起自己当初去一家公司面试的时候,人家出了一道题:“建表的时候除了使用int自增作为主键,你还用什么作为主键?”。过去很长时间了,突然想起来,当初没能答好,现在就把这个问题也分享一下。

首先看一个UUID作为主键的数据表:

自学php博客

一般我们建表的时候都是使用NOT NULL AUTO_INCREATEMENT,PRIMARY KEY 。初学的时候,就知道这一种写法,后来在工作中财知道可以使用MD5加密生成的UUID作为主键。所以当初面试的时候,就只能回答使用int自增的主键。

生成UUID的语句:

$id = strtoupper(md5(uniqid(mt_rand(), true)));

用uniqid函数生成一个不重复的字符串,然后使用md5加密是id的长度都是32位,然后将其转化成大写即可。