zanelee
V2EX  ›  数据库

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

  •  
  •   zanelee · Jul 15, 2022 · 4197 views
    This topic created in 1421 days ago, the information mentioned may be changed or developed.
    25 replies    2023-05-31 21:31:56 +08:00
    dqzcwxb
        1
    dqzcwxb  
       Jul 15, 2022
    非常精准的体现了自己的技术水平
    FYFX
        2
    FYFX  
       Jul 15, 2022
    这样还不够,最好字段名称是 str1,str2,...
    T0m008
        3
    T0m008  
       Jul 15, 2022
    没啥好处,懒呗
    wd
        4
    wd  
       Jul 15, 2022 via iPhone
    好处就是啥都可以存进去
    looking0truth
        5
    looking0truth  
       Jul 15, 2022
    用 text 吧,var 还有限制 /dog
    Jooooooooo
        6
    Jooooooooo  
       Jul 15, 2022
    偷懒了

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

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

    归根到底要看实际情况需要。
    luotuoxiaohui
        20
    luotuoxiaohui  
       Jul 16, 2022
    我也是,但是为什么让我养成了这个习惯,客户改需求导致,做好后这个位置改一下,不要这个换另外一个内容,然后又换,又换,,,,,换了后数据库这边格式没有改过来的话就蹦了,其他的调用了这个的话,又要改,但是改成 var 的话,只需要改前端就好了,反正都适配,一个字 方便
    lovelylain
        21
    lovelylain  
       Jul 16, 2022 via Android
    varchar 有长度限制啊,要排序要检索的用匹配需求的类型,其他字段还不如一把梭塞 text 里,改 proto 就行。
    qiumaoyuan
        22
    qiumaoyuan  
       Jul 17, 2022
    可能是从大公司毕业的
    siweipancc
        23
    siweipancc  
       Jul 17, 2022 via iPhone
    然后排序就成了 order by case ,cpu 拉满
    learningman
        24
    learningman  
       Jul 18, 2022
    那为啥不用 mongo 要用 mysql
    Gonlandooo
        25
    Gonlandooo  
       May 31, 2023
    有的,如果你有客户的实施要求是适配各种莫名其妙的数据库(特别是各种国产)你就知道 varchar 的好处了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2942 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 09:37 · PVG 17:37 · LAX 02:37 · JFK 05:37
    ♥ Do have faith in what you're doing.