zanelee
V2EX  ›  数据库

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

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

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

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

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