› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
PeiXyJ
V2EX  ›  MySQL

大佬们你们 Mysql 的数据库名称怎么分割的?

  •  
  •   PeiXyJ · Dec 13, 2024 · 6528 views
    This topic created in 659 days ago, the information mentioned may be changed or developed.

    我公司数据库名称采用的是 小写 + 下划线 + 小写 例如 pj0001_prod,但是同事提出了异议说在某些软件使用下划线会出现异常(问了他什么软件又不说).

    31 replies  •  2024-12-15 00:15:42 +08:00
    wps353
        1
    wps353  
       Dec 13, 2024   ❤️ 2
    下划线一般不会有问题,中横线倒是有问题
    ResponseBody
        2
    ResponseBody  
       Dec 13, 2024 via iPhone   ❤️ 11
    回复他

    “在你写的软件里会出现异常是吗😏”
    superrichman
        3
    superrichman  
       Dec 13, 2024   ❤️ 4
    下划线都有问题。。。这同事新来的吧

    但凡看一眼 mysql 自带的`mysql`库的结构都不会这么说,表设计完全可以参考它
    Ayanokouji
        4
    Ayanokouji  
       Dec 13, 2024   ❤️ 1
    他菜,一楼说的对,中划线有问题
    lucasdev
        5
    lucasdev  
       Dec 13, 2024   ❤️ 3
    一楼说的对,下划线放心用,怎么可能有问题: https://dev.mysql.com/doc/refman/8.4/en/identifiers.html
    eijuziew
        6
    eijuziew  
       Dec 13, 2024
    用的 SQLSERVER ,驼峰
    keenkiller
        7
    keenkiller  
       Dec 13, 2024   ❤️ 2
    下划线没有任何问题
    shadowyue
        8
    shadowyue  
       Dec 13, 2024
    @ResponseBody 就喜欢你这种说话好听的同事
    RyougiShiki
        9
    RyougiShiki  
       Dec 13, 2024
    可以参考 django 框架的习惯,模块名_表名,小写, 下划线没有问题。
    gerefoxing
        10
    gerefoxing  
       Dec 13, 2024   ❤️ 2
    下滑线不会有问题,反而-这种才不建议
    huzhizhao
        11
    huzhizhao  
       Dec 13, 2024
    他写的软件可能有问题
    Akikiki
        12
    Akikiki  
       Dec 13, 2024
    开发环境如果域名里写 下划线 倒是会有问题
    ntdll
        13
    ntdll  
       Dec 13, 2024   ❤️ 1
    唔,假设说,不用下划线的话,那么用什么呢?
    空格?中划线?还是$#@%这种异教?

    看来看去,还是只有下划线这一种
    IvanLi127
        14
    IvanLi127  
       Dec 13, 2024
    绝了,下划线有问题的话我用过的 ORM 全部完蛋。话说除了下划线还有啥常见的分法
    lance07
        15
    lance07  
       Dec 13, 2024
    听他的, 问问他想怎么分割
    v1
        16
    v1  
       Dec 13, 2024   ❤️ 1
    下划线是大部分情况下最稳妥的方案。
    用驼峰会有个问题就是`lower_case_table_names`参数,当值设为 1 时,MySQL 将忽略表名和数据库名的大小写。
    fgwmlhdkkkw
        17
    fgwmlhdkkkw  
       Dec 13, 2024   ❤️ 1
    打一架!打一架!打一架!打一架!打一架!😡
    poltao
        18
    poltao  
       Dec 13, 2024
    这都能成为问题,看来你们公司挺闲的
    xiangyuecn
        19
    xiangyuecn  
       Dec 13, 2024
    那就采用中文命名,打架都省了
    PeiXyJ
        20
    PeiXyJ  
    OP
       Dec 13, 2024   ❤️ 1
    @poltao 哈哈哈也没有,主要现在服务器要迁库...所以我们就又讨论了一下...
    PeiXyJ
        21
    PeiXyJ  
    OP
       Dec 13, 2024
    @xiangyuecn 直接打群架是吧
    wyx119911
        22
    wyx119911  
       Dec 13, 2024
    通配符 _ 在 MySQL 中具有特殊含义, 如果数据库名中含有下划线 _
    例如 GRANT ALL ONdb_1.* TO test_user;进行授权操作时,会导致 db01 ,db11 ,db21 ,…,db91 都被匹配。需要将_进行转译才行。
    所以还是有坑的,那位同事可能之前看到过但具体想不起来是啥坑了
    akira
        23
    akira  
       Dec 13, 2024
    就是你这个习惯就行了, 已经是问题最少的方案了
    seansong
        24
    seansong  
       Dec 13, 2024
    那就去掉下划线,直接连写,这样总不会有问题了吧🐶
    Rache1
        25
    Rache1  
       Dec 13, 2024
    @gam2046 #13 SQL Server 风格,用驼峰 😂
    realpg
        26
    realpg  
       Dec 14, 2024
    你同事说的没错。库名不能用下划线,会有坑。我得想想是什么坑 记不清了
    realpg
        27
    realpg  
       Dec 14, 2024
    @wps353 #1
    @ResponseBody #2
    @superrichman #3
    @Ayanokouji #4
    @lucasdev #5
    @tairan2006 #7


    人家说的是库名,不是表名

    我这边我自己定的公司规范里,数据库名就明确写了不能用下划线,表名不能用减号,但是我不记得有什么坑让我这么规定的了 容我想想
    zczy999
        28
    zczy999  
       Dec 14, 2024
    @realpg #26 思索
    realpg
        29
    realpg  
       Dec 14, 2024   ❤️ 1
    @wps353 #1
    @ResponseBody #2
    @superrichman #3
    @Ayanokouji #4
    @lucasdev #5
    @tairan2006 #7
    @zczy999 #28

    我想了一天也没想起来 然后我刚去问了 chatgpt 可能有什么风险 在 gpt 的提示下 然后大概整明白了当初我为什么这么定的规范

    MYSQL 中单下划线在很多场景识别为单字通配符,在赋权等场景,这样会导致可能的风险。
    很多 ORM 会识别这个通配符,给你处理好,有些 ORM 并不会 这是风险 1

    而且这个可能影响更大的是用各种管理工具或者裸写 SQL 进行运维时,会造成很多莫名其妙的问题
    很多管理工具对这个的处理非常不好
    HappyAndSmile
        30
    HappyAndSmile  
       Dec 14, 2024
    不断提升自己,去了更好的公司后,就不会再遇到有这种问题的同事了
    lucasdev
        31
    lucasdev  
       Dec 15, 2024
    @realpg #27 大家都知道说的是库名啊。文档里这么写的,哪个软件有问题那是它没有按照 MySQL 规范呗,这种软件还敢用嘛
    "Certain objects within MySQL, including database, ... names are known as identifiers. " 这句里面包含 database ,然后 "Permitted characters in unquoted identifiers: ASCII: [0-9,a-z,A-Z$_] (basic Latin letters, digits 0-9, dollar, underscore)"
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2300 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 06:47 · PVG 14:47 · LAX 23:47 · JFK 02:47
    ♥ Do have faith in what you're doing.