这么小的话题也拿出来写篇post,大家别笑我。
最近不少文章提出了pid uid等等不同的id,大部分都是针对dz等论坛的比如板块id,帖子id之类的
这里我要说的也是这个问题,不过并不针对某款具体产品,而是和数据类型有关
关于数据库id的设计,通常我们用一个唯一数做主键,我们可以采用以下类型
int 10进制整数,短小,好记,在某一个表中可以唯一,并且自增长
timestamp 16进制数,记忆力好点的能记住,有规律但不明显,根据当前时间生成,在当前主机上是唯一的
uniqundifier 分段16进制数,记不住,有规律但更加不明显,权当无规律看待,全世界独一无二
如果我们用int,就可以用pid表示列名,表示primary key
如果用timestamp,可以用tid或者sid,这个时候已经超出primary key的范畴了,虽然在当前表中可以当做primary key来用
如果用uniqundifier ,可以用uid来表示,就好像thinkpad电脑主板的uuid一样,独一无二,当然也可以当做primary key来用
这些是习惯,如果觉得合理就借鉴一下,我以前都用id作为列名,不管是什么类型的,以后用这种形式命名应该能直观看出id的唯一范围来,毕竟同一个数据库不同的表根据需要有的时候用不同的类型做主键