数据库设计表的时候把不管啥字段类型都设置为 varchar,有啥好处嘛 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zanelee
V2EX    数据库

数据库设计表的时候把不管啥字段类型都设置为 varchar,有啥好处嘛

  •  
  •   zanelee 2022-07-15 21:22:17 +08:00 3872 次点击
    这是一个创建于 1252 天前的主题,其中的信息可能已经有所发展或是发生改变。
    25 条回复    2023-05-31 21:31:56 +08:00
    dqzcwxb
        1
    dqzcwxb  
       2022-07-15 21:22:49 +08:00
    非常精准的体现了自己的技术水平
    FYFX
        2
    FYFX  
       2022-07-15 21:55:12 +08:00
    这样还不够,最好字段名称是 str1,str2,...
    T0m008
        3
    T0m008  
       2022-07-15 21:56:54 +08:00
    没啥好处,懒呗
    wd
        4
    wd  
       2022-07-15 22:02:05 +08:00 via iPhone
    好处就是啥都可以存进去
    looking0truth
        5
    looking0truth  
       2022-07-15 22:06:21 +08:00
    用 text 吧,var 还有限制 /dog
    Jooooooooo
        6
    Jooooooooo  
       2022-07-15 22:11:15 +08:00
    偷懒了

    某些情况下是有点好处, 比如你订单弄成 long, 哪天里面想加点字符就搞不定了.
    masker
        7
    masker  
       2022-07-15 23:06:15 +08:00 via Android
    高性能 MySQL ?
    rockyliang
        8
    rockyliang  
       2022-07-15 23:53:53 +08:00
    好处没想到,坏处倒是有,举个简单的例子,假设你用 varchar 来存储数字,并且需要排序的时候,会发现排不了
    815979670
        9
    815979670  
       2022-07-16 00:12:36 +08:00
    可能是培训班出来的,我们老师当时说 不会选引擎就选 innodb 不会选字段就选 varchar
    yedanten
        10
    yedanten  
       2022-07-16 00:13:12 +08:00 via Android
    补充一下坏处,时间也用 varchar 存,那按时间区间查询也不能简单的直接><=between 。
    坏处随便想想就有不少,好处除了存数据方便不用脑子反正不会报错,想不出其他的
    liaohongxing
        11
    liaohongxing  
       2022-07-16 00:21:15 +08:00
    pg 用 varchar 没问题 ,pg 的 varchar 和 text 几乎一样,都能存大文本
    westoy
        12
    westoy  
       2022-07-16 00:33:15 +08:00   1
    梭哈流建议直接 json
    liKeYunKeji
        13
    liKeYunKeji  
       2022-07-16 00:59:21 +08:00 via iPhone   3
    排序需要用 int ,时间用 timestamp ,内容多用 text ,其他用 varchar ,基本够用了。
    lithiumii
        14
    lithiumii  
       2022-07-16 02:43:29 +08:00 via Android
    好处不如别设计了,换 no sql 吧,爱啥字段啥类型就啥
    bigbigpark
        15
    bigbigpark  
       2022-07-16 08:27:02 +08:00
    可以多加班
    hjosama200
        16
    hjosama200  
       2022-07-16 09:23:51 +08:00
    梭哈流直接 json+1 ,懒得设计复杂的数据库表结构,一个 json ,能解决太多问题了,项目里面就喜欢直接存 json ,不设计复杂的表结构。
    XCFOX
        17
    XCFOX  
       2022-07-16 10:19:20 +08:00
    这边建议直接用 MongoDB
    nobody1234
        18
    nobody1234  
       2022-07-16 10:27:11 +08:00 via iPhone
    也要看使用场景,某些场景就是可接受的,甚至是推荐的。比如做 ELT 数仓,第一步就是将数据拉取过来,在无法保证上游数据质量的情况下,落地 Staging 层的表就可以全用 varchar ,之后再慢慢清洗。varchar 虽然耗空间,但数据兼容性不错
    raptor
        19
    raptor  
       2022-07-16 11:15:49 +08:00
    sqlite 很多类型实际都是用 varchar 存的。

    SAP 的大部分字段都是用 CHAR 类型。

    归根到底要看实际情况需要。
    luotuoxiaohui
        20
    luotuoxiaohui  
       2022-07-16 11:47:49 +08:00
    我也是,但是为什么让我养成了这个习惯,客户改需求导致,做好后这个位置改一下,不要这个换另外一个内容,然后又换,又换,,,,,换了后数据库这边格式没有改过来的话就蹦了,其他的调用了这个的话,又要改,但是改成 var 的话,只需要改前端就好了,反正都适配,一个字 方便
    lovelylain
        21
    lovelylain  
       2022-07-16 14:02:45 +08:00 via Android
    varchar 有长度限制啊,要排序要检索的用匹配需求的类型,其他字段还不如一把梭塞 text 里,改 proto 就行。
    qiumaoyuan
        22
    qiumaoyuan  
       2022-07-17 09:26:28 +08:00
    可能是从大公司毕业的
    siweipancc
        23
    siweipancc  
       2022-07-17 14:45:53 +08:00 via iPhone
    然后排序就成了 order by case ,cpu 拉满
    learningman
        24
    learningman  
       2022-07-18 16:00:23 +08:00
    那为啥不用 mongo 要用 mysql
    Gonlandooo
        25
    Gonlandooo  
       2023-05-31 21:31:56 +08:00
    有的,如果你有客户的实施要求是适配各种莫名其妙的数据库(特别是各种国产)你就知道 varchar 的好处了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5032 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 98ms UTC 05:49 PVG 13:49 LAX 21:49 JFK 00:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86