数据库的主键字段名叫`ID`不香么,为什么非要`table 名+ID`、`table 名缩写+ID`?

2020-09-22 15:53:08 +08:00
 luxinfl

大佬们的主键字段名是怎么定义的?难道不叫 ID 还会有什么好处么??

14236 次点击
所在节点    程序员
115 条回复
yogogo
2020-09-22 16:28:48 +08:00
谁设计的听谁的,背锅也不会是你
THESDZ
2020-09-22 16:31:21 +08:00
@alexmao 你难道用字段的时候不用表?想学习下这样的业务场景
alexmao
2020-09-22 16:35:16 +08:00
@THESDZ 用表是用表,但是如果能区分,为什么不区分呢?多一点信息不是更加明确吗?
THESDZ
2020-09-22 16:37:18 +08:00
@alexmao 既然用了表,`table.id` 和 `table.table_id`,你非要选后者,理由是语义更清晰?
alexmao
2020-09-22 16:39:08 +08:00
@THESDZ 在一个表里叫 id,另一个表里放这个 id 的时候叫 table_id,不觉得很不规整吗?
netnr
2020-09-22 16:40:37 +08:00
个人强烈推荐字段按表统一加前缀
jintianfengda
2020-09-22 16:41:26 +08:00
关注,我个人是倾向主键就叫 id
linxl
2020-09-22 16:41:55 +08:00
只要项目里统一口径就行, 各有好处吧.
除了 id, 还有很多其他单词也是很高频的字段名, 难道都要加上 table 名吗
libracloud
2020-09-22 16:44:30 +08:00
用 rails 习惯后,我什么都是按 rails 的来的
THESDZ
2020-09-22 16:44:50 +08:00
@alexmao
1. 不觉得,规整应该指的是同一套标准,而非同一个名字.
2. 顺带:良好的代码应该简介的同时可以自解释,`ID`在当前表就是主键,没人看不懂,而`USER_ID`明显就是`USER`表的主键
3. `ID`一般都没有业务含义,统一的好处是在处理统一的非业务逻辑的时候,不需要考虑一些异化的问题,从我有限的开发经验中,我认为全部使用`ID`效率更高.
chendy
2020-09-22 16:49:17 +08:00
自己的 id 就叫 id,关联到别人的字段叫 xxx_id
其实怎么叫不是很重要,主要还是要有统一的命名规范
zhaokun
2020-09-22 16:51:46 +08:00
我们更奇葩
主键用 pk_表名全称
外键用 fk_表名全称
定这规则的人说是 10 年高德地图的都这么用,现在是 2020 年了
NO9527
2020-09-22 16:53:50 +08:00
喜欢 ID
当一个 table 很长的适合,取一个很长的 table_id 感觉不舒服
crist
2020-09-22 17:02:04 +08:00
我™天王老子来了我也直接叫它 id !
sonxzjw
2020-09-22 17:05:02 +08:00
貌似表名+id 的命名方法很早很早了吧,不过很早很早之前我就只用 id 了

也符合命名简单明了的规范(当然这是单表角度)

但是多表角度的话都会有 表明.字段名,so 个人觉得还是 id 合适
tadebao
2020-09-22 17:07:13 +08:00
@lichao 这种用法遗传自以前的虚拟主机时代 一个 MySQL 库 跑多个应用 在表名上加前缀来区分
cedoo22
2020-09-22 17:08:36 +08:00
记得 powerdesinger 里面建模,默认检查有效性的时候,不同表相同名字的字段是有警告⚠
gaorenhua
2020-09-22 17:10:59 +08:00
可能是多表联查的时候,可以直接撸,不用担心字段冲突?也不用用 tableA.id as Aid 来多写几行?
woodensail
2020-09-22 18:03:40 +08:00
我看了下,好像没人提逻辑主键和业务主键的区分。
说白了楼主是用逻辑主键的,所以主键不参与关联,是个无意义字段,自然一个 id 就行。
而楼里面提倡「 table 名+id 」的则是用业务主键,主键中包含表名易于关联。

所以无所谓对错,只是逻辑主键和业务主键两种不同的习惯而已。
whx20202
2020-09-22 18:10:13 +08:00
就叫 id,没什么问题,多表关联时候带上表名就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/709455

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX