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

因为把公司 Mysql 一堆带 null 字段优化非空带默认值被骂

  •  1
     
  •   AhogeK · 2021-04-15 11:08:42 +08:00 · 11262 次点击
    这是一个创建于 1318 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚来一家新公司注意到数据库里新建的表有一堆 null 值的字段,想数据量大会影响索引,项目也刚开我就改了下,然后就被训了,就说别动数据库,非不非空让前端去判断(我就想是前端判断啊,但后端不也要校验,数据库只是优化查询)但我没之声 而且好多字段都是中英混用,可难受死我这强迫症了 比如父 id fid 组织类型 orglx 行政区划代码 xzqh 行政区域编码却是 adcode [捂脸.jpg]

    第 1 条附言  ·  2021-04-15 19:10:00 +08:00
    没有原型 没有项目文档 简单沟通(就 CRUD 可以了)一开始 CTO 让我自己设计表 固定的几个字段有就行,老员工出现,帮我用以前项目结构生成几个表直接用。我看了下改了下非空跟默认,虽然一些类型跟我原先想的不符,但我也没去动。第二天保存(刚好有个字段以自己想得业务想法这个字段得有值还不能是空串就先没设置默认)就插不进去,老员工后来发现 NOT NULL 然后就来找我了
    以后找我数据库 我再建是狗 [滑稽.jpg] 说我的不是老大 我觉得老大人挺好 爱了 还不想跑 [害羞.jpg]
    第 2 条附言  ·  2021-04-16 11:17:25 +08:00
    以此为戒 大家的批评就是对我的督促 以后在团队要学会沟通 懂规矩才能做事 加油 (但字段是真的难受)
    107 条回复    2021-04-16 16:09:01 +08:00
    1  2  
    Ciallo
        101
    Ciallo  
       2021-04-16 10:33:31 +08:00
    如果是数值型,null 和 0 的意义是不一样的,你没办法知道用户是真的录入了 0 还是录入的空,如果代码里面有对 null 值的判断,那么这个默认值 0 直接导致这段业务逻辑失效了,很严重
    weiwenhao
        102
    weiwenhao  
       2021-04-16 10:37:15 +08:00
    [强制] 使用 ISNULL()来判断是否为 NULL 值。
    说明:NULL 与任何值的直接比较都为 NULL 。
    1 ) NULL<>NULL 的返回结果是 NULL,而不是 false 。
    2 ) NULL=NULL 的返回结果是 NULL,而不是 true 。
    3 ) NULL<>1 的返回结果是 NULL,而不是 true 。

    我看 阿里云 java 手册有提到部分 null 的使用,是不是说明不反对 null.
    opentrade
        103
    opentrade  
       2021-04-16 10:49:05 +08:00
    直接老大一般不会批评,不然怎么带队
    NeezerGu
        104
    NeezerGu  
       2021-04-16 11:01:11 +08:00
    “说我的不是老大 我觉得老大人挺好 爱了 还不想跑 ”
    你的直接领导一般情况下就是给你擦屁股的。。。。
    你在这好歹有个人干活,哪怕心理吐槽这娃有点坑啊,也还是会让你在。

    你要想的是,你的直接领导也许已经被他的领导骂成鹌鹑了。因为你导致一个人被骂,你不会觉得羞愧吗
    AhogeK
        105
    AhogeK  
    OP
       2021-04-16 11:12:52 +08:00
    @NeezerGu 是的 我有罪 所以要引以为戒 避免同样的错误再次发生 大家的批评都是我前进的动力 :)
    ericgui
        106
    ericgui  
       2021-04-16 15:52:57 +08:00
    你胆子也太肥了

    改数据库的大事,你都随便就改了

    公司没辞退你算轻的了
    meepo3927
        107
    meepo3927  
       2021-04-16 16:09:01 +08:00
    字段名难受, 改是没问题的。

    但是,NULL 是有含义也是有用的, 不要全盘否定吧
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2402 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:04 · PVG 00:04 · LAX 08:04 · JFK 11:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.