V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nyse
V2EX  ›  问与答

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

  •  
  •   nyse · 2021-08-02 17:06:49 +08:00 · 1748 次点击
    这是一个创建于 1209 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    还是不带前缀,如:

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

    主要区别

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

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

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

    product_id 这种还是建议,但确实没必要每个字断都加这种前缀,开发角度似乎是多余,但是从日后整体开发维护和数据应用来说,这都是必不可少的,主要是命名要有唯一对应物,且系统统一,这样才能降低日后的维护成本。
    msg7086
        7
    msg7086  
       2021-08-03 01:54:07 +08:00
    我一般跟着 Rails 的最佳实践走。别的表里的引用会用 product_id,然后 product 表就直接用 id 。
    至于字段名称冲突什么的,ORM 都会处理的,不需要我浪费宝贵的上班时间去解决。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   950 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:38 · PVG 06:38 · LAX 14:38 · JFK 17:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.