vyuai
V2EX  ›  数据库

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

  •  
  •   vyuai · Oct 9, 2024 · 3052 views
    This topic created in 754 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
    gitrebase
    Oct 9, 2024
    1
    > 为什么大部分人都会加()呢

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

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

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

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

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