V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zanelee
V2EX  ›  数据库

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

  •  
  •   zanelee · 2022-07-15 21:22:17 +08:00 · 3303 次点击
    这是一个创建于 863 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
    pytth
        13
    pytth  
       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   ·   实用小工具   ·   1053 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:10 · PVG 07:10 · LAX 15:10 · JFK 18:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.