gpt4 book ai didi

sql - FALSE 和 TRUE 与 NULL 和 TRUE

转载 作者:行者123 更新时间:2023-11-29 11:38:21 25 4
gpt4 key购买 nike

我有类型为 BOOLEAN

的列

起初(在INSERT上),值总是FALSE,只有在更新列为TRUE

之后

所以问题是:将此列设为NOT NULL DEFAULT FALSE,或将此列设为DEFAULT NULL,然后更新为TRUE(如果然后也会反向更新,设置列 NULL 而不是 FALSE 值,所以在这种情况下,永远不会使用 FALSE 值 )

从性能和存储节省的角度来看,哪种选择会更好?

最佳答案

这对存储没有任何意义的影响。根据其他可为 null 的列,如果此列碰巧溢出可为 null 的位图到下一个字节,我们最多讨论一个字节,但很可能它根本不会添加任何存储。

对于性能(以及程序员的生产力/维护),这在很大程度上取决于您打算如何使用它。这里的信息远远不够,如果不邀请任何真正读过这个问题的人参加您的所有项目 session ,也不可能获得足够的信息。

就我个人而言,当我有一个默认为 false 的 bool 列(无论您选择如何表示它)然后在某个时候变为 true 并且保持为 true 时,我喜欢使用可为 null 的 DateTime 列,其中任何日期都表示该值为真,NULL 表示假。我的经验是,您几乎总是最终想知道值变为真的日期和时间。

例如,我在高等教育部门工作。在这项业务中发生的一件事是向学生发送经济援助奖励信。然后学生签名并返回信件。已接受的奖项以后可能会被拒绝或取代,但这不会改变学生已签署这封信并接受该奖项的事实。法规要求我们将这些信件存档,但从数据库的角度来看,只要知道是否接受信件中的奖励这个 bool 问题就足够了。很快就很明显,我们还需要知道奖项何时被接受。因此,日期时间列用于该字段。

关于sql - FALSE 和 TRUE 与 NULL 和 TRUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34400846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com