vyuai
V2EX  ›  数据库

问下各位大佬, 关于数据库类型 bigint

  •  
  •   vyuai · Oct 9, 2024 · 2476 views
    This topic created in 588 days ago, the information mentioned may be changed or developed.
    employee_id bigint(20)
    比如 employee_id 后面为什么要加(20)呢, 搜索了一下好像加了并没有意义啊, 不像 varchar(20), 为什么大部分人都会加()呢, 是为了和别的数据库兼容嘛, 还有关于数据库表结构和字段的设计有没有可以学习的资料啊
    10 replies    2024-11-05 12:07:43 +08:00
    gitrebase
        1
    gitrebase  
       Oct 9, 2024
    > 为什么大部分人都会加()呢

    不吧
    Tacks
        2
    Tacks  
       Oct 9, 2024
    ```
    > 结论:都一样
    BIGINT(20)与 BIGINT 在数据存储和数值范围方面是完全相同的,对实际数据存储没有任何改变。这种语法保留更多的是为了与旧版本和其他数据库的兼容性。

    > 为什么大部分人会加(20)?
    1 、历史原因:早期版本的 MySQL 或其他数据库可能会引入这种语法,后来保留了下来。
    2 、一致性:有些团队可能有统一的代码风格要求,习惯性地为所有整数类型添加显示宽度,另外也有可能是阅读习惯
    ```
    vyuai
        3
    vyuai  
    OP
       Oct 9, 2024
    @Tacks 感谢感谢, 明白了, 有些 GUI 好像也会默认加
    Kite6
        4
    Kite6  
       Oct 10, 2024 via Android   ❤️ 1
    如果设置了补 0 ,这个会影响
    cleanery
        5
    cleanery  
       Oct 10, 2024
    我一直理解是 CLI 客户端里的显示宽度, 对使用完全没任何影响
    seedhk
        6
    seedhk  
       Oct 10, 2024
    一开始不明白为什么,有样学样,后面知道了也习惯了,就没改
    orczhou
        7
    orczhou  
       Oct 14, 2024
    @Tacks 这个回答很像 LLM 的...

    新版本已经不再使用这样的写法了。

    “关于数据库表结构和字段的设计有没有可以学习的资料”:建议阅读 MySQL 官方的手册。
    zzmark06
        8
    zzmark06  
       Oct 29, 2024
    参见文档: https://dev.mysql.com/doc/refman/8.0/en/numeric-type-syntax.html

    是个历史因素,自 8.0.17 已经标记弃用,后续会移除
    vyuai
        9
    vyuai  
    OP
       Oct 30, 2024
    @zzmark06 感谢感谢
    EthanZC
        10
    EthanZC  
       Nov 5, 2024
    新版本的数据库其实都没这些了,也就老程序员 or 架构师对系统优化层面非常在意的,才会专门根据业务去指定长度
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5398 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 06:59 · PVG 14:59 · LAX 23:59 · JFK 02:59
    ♥ Do have faith in what you're doing.