Archangell
V2EX  ›  问与答

旁边老哥问我为什么手机号不用 int

  •  
  •   Archangell · Mar 26, 2019 · 6326 views
    This topic created in 2784 days ago, the information mentioned may be changed or developed.

    数据库设计 phone 是 varchar 型 他问我为什么不是 int 型

    34 replies  •  2019-03-26 22:24:51 +08:00
    MaxTan
    MaxTan
    Mar 26, 2019
    1
    你跟他说不够用
    learnshare
    learnshare
    Mar 26, 2019❤️1
    2
    国家代码怎么存
    Vegetable
    Vegetable
    Mar 26, 2019❤️2
    3
    千言万语化作一句老子乐意
    newtype0092
    newtype0092
    Mar 26, 2019
    4
    我前不久才干过这个沙雕事情。。。存的手机号入库就变了,后来才想起来位数不够。。。
    prolic
    prolic
    Mar 26, 2019
    5
    电话号码包括+-的
    helionzzz
    helionzzz
    Mar 26, 2019❤️3
    6
    你就问他老子为什么要写道德经
    icew4y
    icew4y
    Mar 26, 2019 via iPhone
    7
    你的同事这种问,表示他经验不足
    ccoming
    ccoming
    Mar 26, 2019❤️4
    8
    我的理解:对于能加减的数字串(日期、时、金额),才用数值型的。不能加减的(订单号、手机号、身份号),都用文本型。
    dallaslu
    dallaslu
    Mar 26, 2019
    9
    大家大业的还差这点数据库空间
    Flasky
    Flasky
    Mar 26, 2019 via Android❤️1
    10
    存手机号至少也要 long long 啊,但是如果是座机这些 0 开头的你怎么存?
    ezrealinxh
    ezrealinxh
    Mar 26, 2019
    11
    你问他为什么不用 byte
    Archangell
    Archangell
    OP
    Mar 26, 2019❤️3
    12
    那老哥看了大家回复表示明白了
    PP
    PP
    Mar 26, 2019 via iPad❤️9
    13
    加班后楼主被老哥毒打一顿,“害我丢脸!”
    MeteorCat
    MeteorCat
    Mar 26, 2019 via Android
    14
    +86 +0754
    WordTian
    WordTian
    Mar 26, 2019 via Android
    15
    哈哈,int 好像最多存到 24 亿左右吧,11 位的电话号码是真存不了
    Archangell
    Archangell
    OP
    Mar 26, 2019
    16
    @PP 不会 他表示感谢 涨姿势
    shiny
    shiny
    Mar 26, 2019
    17
    让我想起年少无知时,把 ip2long 的地址存成 unsigned int 的那个下午
    orangeade
    orangeade
    Mar 26, 2019 via Android
    18
    @learnshare 微博貌似是两部分,+号换成 0
    mogita
    mogita
    Mar 26, 2019
    19
    1-800-MY-APPLE 苹果客服电话了解一下
    v2mm
    v2mm
    Mar 26, 2019
    20
    @shiny ip2long 存成 unsigned int 感觉没啥问题啊,省空间,作为 key 比较时效率还高
    pinews
    pinews
    Mar 26, 2019
    21
    用 int 是自己为难自己,
    GGGG430
    GGGG430
    Mar 26, 2019 via iPhone
    22
    你跟他说我要查询 138 开头的手机号有哪些,int 怎么查?
    co3site
    co3site
    Mar 26, 2019 via Android
    23
    当然是给他介绍 longlong 啊
    shiny
    shiny
    Mar 26, 2019
    24
    @v2mm 当前我也是这么想的,但当年 32 位系统还是很流行的,ip2long 会出现负值,然后插入失败。如果恰好又不重视错误信息的捕获,这条记录就很可能永远丢失了。
    shiny
    shiny
    Mar 26, 2019
    25
    @v2mm 而我恰好都遇到了,更巧的是每条记录起码值个千把块钱。
    AlisaDestiny
    AlisaDestiny
    Mar 26, 2019
    26
    @GGGG430
    select * from user where floor(phone/100000000) = 138; 哈哈哈
    opengps
    opengps
    Mar 26, 2019
    27
    我替你回答他 666
    huangdayu
    huangdayu
    Mar 26, 2019 via Android
    28
    +86 1.........
    msg7086
    msg7086
    Mar 26, 2019
    29
    主要是因为电话号码不是一个数值,所以不能当作数值来存储。和位数都没有关系。

    021 10086 这个号码你用 int 怎么存。
    lxy
    lxy
    Mar 26, 2019
    30
    说到 IP,当时以为 unsigned int 够用,结果还有 IPv6...
    dreamwar
    dreamwar
    Mar 26, 2019❤️1
    31
    晚上回去后楼主被边上老哥压在身下,一边...一边问:“你今天为什么要上 V 站发这个贴,嫌我不够丢人吗?”
    ob
    ob
    Mar 26, 2019 via Android
    32
    @AlisaDestiny >1380000...<1390000
    Osk
    Osk
    Mar 26, 2019 via Android❤️1
    33
    excel 让我明白很多看起来像数字的实际上不能用数字类型😂
    mingyun
    mingyun
    Mar 26, 2019
    34
    #8 楼没毛病
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   544 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 19:28 · PVG 03:28 · LAX 11:28 · JFK 14:28
    ♥ Do have faith in what you're doing.