数据库的主键字段名叫`ID`不香么,为什么非要`table 名+ID`、`table 名缩写+ID`?
大佬们的主键字段名是怎么定义的?难道不叫 ID 还会有什么好处么??
大佬们的主键字段名是怎么定义的?难道不叫 ID 还会有什么好处么??
当然是 where user.id = topic.user_id 好
这样做,一个是有些属性像 order name status 这些可能是 DB 的关键字,有时候工具或者代码高亮显示的很奇怪,但是基本上不报错
另外一个原因就是表连接的时候,两个表可能有一样的字段,需要表(别)名点字段(当然平常也应该加上别名)
看你是手写 SQL 还是用 ORM 咯
也符合命名简单明了的规范(当然这是单表角度)
但是多表角度的话都会有 表明.字段名,so 个人觉得还是 id 合适
所以无所谓对错,只是逻辑主键和业务主键两种不同的习惯而已。
id 每个表的 id 为 pk,table+_id 为关联字段 id,我个人习惯感觉还好,如果要是表名太长的话,可以用其他意思相近的英文单词替代。这样的话,能够单看 field 就能知道这个字段关联的哪个表,更方便一点。
真码农有能力制定项目命名规则,就按自己偏好来,自己制定不了,学会适应
现代编辑器比较先进,各种风格差别不大
大部分人应该都是 用 id 作为唯一标识
user 表的 pk 是 id
order 表 pk 是 id fk 是 user_id
同时用 id 和 code
id 是 pk 自然是唯一的
code 作为外部关联标识应当是唯一的
这样的话 不觉着 id 略显多余么 干脆别用 id 直接 code 作为 pk
通常表里还会加两个字段 创建时间 修改时间
查最新数据用 创建时间字段 比 id 字段 更恰当
叫 xxx_id 而不是 id 的好处就是可以单独用的时候也具备辨识度(包括语义、可读性),多表协同的时候能提供一部分便利。
你在一个系统里,统一规范就好,别一会东一会西。
如果你一般都是 select * from xxx order by id desc limit 1 这么简单的事情,那显然没必要纠结。
就像写个 hello world 没必要引入一大堆框架,搞上一大堆设计模式。