nyse
V2EX  ›  问与答

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

  •  
  •   nyse · Aug 2, 2021 · 3349 views
    This topic created in 1923 days ago, the information mentioned may be changed or developed.

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

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

    还是不带前缀,如:

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

    主要区别

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

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

    7 replies  •  2021-08-03 01:54:07 +08:00
    3dwelcome
    3dwelcome
    Aug 2, 2021❤️1
    1
    我用中文字段名,和关键词不冲突。
    Kimen
    Kimen
    Aug 2, 2021
    2
    放心设,冲突了改,就完事了
    40EaE5uJO3Xt1VVa
    40EaE5uJO3Xt1VVa
    Aug 2, 2021
    3
    加上前缀,有备无患
    uqf0663
    uqf0663
    Aug 2, 2021 via Android
    4
    我都是加首字母的,例如 product 表 pid user 表 uid [手动狗头]🐶
    liaojl
    liaojl
    Aug 2, 2021 via iPhone
    5
    关键字冲突的时候,MySQL 可以用反单引号`引起来,PostgreSQL 可以用双引号"引起来。
    Maxwe11
    Maxwe11
    Aug 3, 2021
    6
    不冲突,不过我原来做后端数据,不是前台开发,为了以后处理数据方便,强烈建议前台开发的小伙伴儿统一字段命名,不然系统越做越多,有时候为了快速上线互相借用,导致业务是上线了,后期要用数据的时候极度痛苦,为此我那时候特意编制了语法、词典和统一语义库,来统一表名的命名方法和字段的命名方法。

    product_id 这种还是建议,但确实没必要每个字断都加这种前缀,开发角度似乎是多余,但是从日后整体开发维护和数据应用来说,这都是必不可少的,主要是命名要有唯一对应物,且系统统一,这样才能降低日后的维护成本。
    msg7086
    msg7086
    Aug 3, 2021
    7
    我一般跟着 Rails 的最佳实践走。别的表里的引用会用 product_id,然后 product 表就直接用 id 。
    至于字段名称冲突什么的,ORM 都会处理的,不需要我浪费宝贵的上班时间去解决。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1656 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 08:24 · PVG 16:24 · LAX 00:24 · JFK 03:24
    ♥ Do have faith in what you're doing.