15
回答
数据表主键为什么都用ID作为主键?
极速云服务器,低至1.04元/天>>>   

数据库: postgresql 9.1

我有一个数据表,用于存储网络设备IP地址和设备其他信息, 因为IP地址是唯一的,而且SELECT时一般用IP作为条件,我用IP作为主键不好吗?  (IP字段是postgresql的inet类型)

PS: 这个IP字段还需要用作其他表的外键。

举报
InBi
发帖于4年前 15回/3K+阅
共有15个答案 最后回答: 4年前
ID做主键其实没有任何业务意义,是为了方便管理操作和检索。
--- 共有 2 条评论 ---
kenyon_君羊有表关联时建议用int类型的,你的业务需求能满足IP做主键也可以,看个人喜好,但最好统一类似的表。换做我设计表一般会带上ID做主键,习惯问题。 4年前 回复
InBi关乎性能吗? 我的环境INSET很少,但会周期性SELECT,且对延迟有要求。 4年前 回复

我觉得这个纯粹是习惯问题吧,在大多数人的思想观念里“ID”这个东西默认就是存在且唯一的。当然如果表里的元素有另一个不会重复的属性,用来做主键也没什么不可以的嘛,不过我建表的时候都会习惯性加上 _id 属性

ID和主键是两回事,主键可以是任何列,没有规定说限制你非要给表建立一列ID。只是为了业务方便或数据库管理,加了一列ID做为表的 主键。你也可以用你的IP地址做主键。
加个无意义的ID字段做主键而不是用类似于username一类的东西的好处事,也许开始username是唯一的,但说不定什么时候它就不唯一了,比如老板改需求了。用ID作主键方便多了
顶部