sekfung
V2EX  ›  问与答

为什么大多数系统数据表设计,类型字段都喜欢用字符串而不是整型

  •  
  •   sekfung · Jul 22, 2021 · 1993 views
  •   You need to sign in to view this topic
    This topic created in 1904 days ago, the information mentioned may be changed or developed.

    用整型查询不是更快吗?

    比如类型有"01" "02",这里衍生另一个问题,既然都是字符串,为何不用"1", "2",还浪费空间

    是出于什么考虑?我想到的有几个原因

    1. 防丢精度防出错,比如前端传个 long 型 雪花 id

    2. "01"有前导 0, 表明该字段最大值为 99

    还有其他什么血泪教训吗?

    8 replies  •  2021-07-23 11:23:27 +08:00
    wellsc
        1
    wellsc  
       Jul 22, 2021 via iPhone   ❤️ 1
    哪里得来的数据
    westoy
        2
    westoy  
       Jul 22, 2021
    没见过有这样搞的

    我倒是觉得这样搞, 碰到哪个库贴心把 0 开头的当 8 进制处理, 又正好后面数字没有超过 7 的, 有引起血泪教训的潜在隐患........
    wdlth
        3
    wdlth  
       Jul 22, 2021
    因为有的时候就存在 0 开头的定长编码方式,比如很多国标的编码,你可以搜索一下:
    《全国固定资产投资项目代码编码规范》
    myd
        4
    myd  
       Jul 22, 2021
    影响速度的瓶颈不在这里
    sekfung
        5
    sekfung  
    OP
       Jul 23, 2021 via iPhone
    @wellsc 大多数可能不严谨,就我对接的几家银行接口,几乎都是这样的设计
    akira
        6
    akira  
       Jul 23, 2021
    互联网行业 比较少见到呢。。 回想了一下,十几年前遇到的比较多一点,短信 SP 网关的,银行的 其他好像就没遇到过呢
    potatowish
        7
    potatowish  
       Jul 23, 2021 via iPhone
    用整型肯定效率最高,但还远远够不成性能瓶颈,用字符串主要是方便,为什么方便,懂的自然懂,不懂的也没必要懂
    sekfung
        8
    sekfung  
    OP
       Jul 23, 2021
    @potatowish #7 老哥能否说说,想了解一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5669 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 08:22 · PVG 16:22 · LAX 01:22 · JFK 04:22
    ♥ Do have faith in what you're doing.