V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vyuai
V2EX  ›  数据库

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

  •  
  •   vyuai · 70 天前 · 1649 次点击
    这是一个创建于 70 天前的主题,其中的信息可能已经有所发展或是发生改变。
    employee_id bigint(20)
    比如 employee_id 后面为什么要加(20)呢, 搜索了一下好像加了并没有意义啊, 不像 varchar(20), 为什么大部分人都会加()呢, 是为了和别的数据库兼容嘛, 还有关于数据库表结构和字段的设计有没有可以学习的资料啊
    10 条回复    2024-11-05 12:07:43 +08:00
    gitrebase
        1
    gitrebase  
       70 天前
    > 为什么大部分人都会加()呢

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

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

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

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

    是个历史因素,自 8.0.17 已经标记弃用,后续会移除
    vyuai
        9
    vyuai  
    OP
       50 天前
    @zzmark06 感谢感谢
    promisenev
        10
    promisenev  
       44 天前
    新版本的数据库其实都没这些了,也就老程序员 or 架构师对系统优化层面非常在意的,才会专门根据业务去指定长度
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3089 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:35 · PVG 21:35 · LAX 05:35 · JFK 08:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.