数据库字段名是否有必要加上表名前缀

2021-08-02 17:06:49 +08:00
 nyse

数据表设计时,遇到的问题,比如说商品表 product,字段设计是包含表名前缀,如

商品 ID product_id 商品名称 product_name 商品状态 product_status

还是不带前缀,如:

商品 ID id 商品名称 name 商品状态 status

主要区别

  1. 带前缀可以避免与 SQL 关键词、保留词冲突,如 name 、status 都是保留词;
  2. 每个字段前面带有这样的前缀显得比较多余,降低可读性;
  3. 不带前缀联表时字段冲突需要设置 alias

大家一般是怎么设计字段的呢?

1526 次点击
所在节点    问与答
7 条回复
3dwelcome
2021-08-02 17:08:20 +08:00
我用中文字段名,和关键词不冲突。
Kimen
2021-08-02 17:30:09 +08:00
放心设,冲突了改,就完事了
yanzhiling2001
2021-08-02 17:37:47 +08:00
加上前缀,有备无患
uqf0663
2021-08-02 18:25:37 +08:00
我都是加首字母的,例如 product 表 pid user 表 uid [手动狗头]🐶
liaojl
2021-08-02 21:54:55 +08:00
关键字冲突的时候,MySQL 可以用反单引号`引起来,PostgreSQL 可以用双引号"引起来。
Maxwe11
2021-08-03 00:54:57 +08:00
不冲突,不过我原来做后端数据,不是前台开发,为了以后处理数据方便,强烈建议前台开发的小伙伴儿统一字段命名,不然系统越做越多,有时候为了快速上线互相借用,导致业务是上线了,后期要用数据的时候极度痛苦,为此我那时候特意编制了语法、词典和统一语义库,来统一表名的命名方法和字段的命名方法。

product_id 这种还是建议,但确实没必要每个字断都加这种前缀,开发角度似乎是多余,但是从日后整体开发维护和数据应用来说,这都是必不可少的,主要是命名要有唯一对应物,且系统统一,这样才能降低日后的维护成本。
msg7086
2021-08-03 01:54:07 +08:00
我一般跟着 Rails 的最佳实践走。别的表里的引用会用 product_id,然后 product 表就直接用 id 。
至于字段名称冲突什么的,ORM 都会处理的,不需要我浪费宝贵的上班时间去解决。

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

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

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

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

© 2021 V2EX