首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

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

  •  
  •   Archangell · 25 天前 · 3310 次点击

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

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

    021 10086 这个号码你用 int 怎么存。
        30
    lxy   25 天前
    说到 IP,当时以为 unsigned int 够用,结果还有 IPv6...
        31
    dreamwar   25 天前   ♥ 1
    晚上回去后楼主被边上老哥压在身下,一边...一边问:“你今天为什么要上 V 站发这个贴,嫌我不够丢人吗?”
        32
    ob   25 天前 via Android
    @AlisaDestiny >1380000...<1390000
        33
    Osk   25 天前 via Android   ♥ 1
    excel 让我明白很多看起来像数字的实际上不能用数字类型😂
        34
    mingyun   25 天前
    #8 楼没毛病
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   967 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 18ms · UTC 18:43 · PVG 02:43 · LAX 11:43 · JFK 14:43
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1