V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
nyse
V2EX  ›  问与答

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

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

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