gpt4 book ai didi

database - 不使用 bool 类型时用什么?

转载 作者:搜寻专家 更新时间:2023-10-30 19:44:07 24 4
gpt4 key购买 nike

好吧,这可能是一个脑残问题,但我很好奇。

我经常发现我需要在数据库中存储 3 个值中的 1 个。例如,如果我的应用程序询问“这所房子要出售吗?”,用户需要能够说"is"、“否”,但有时用户并不知道。所以也有“我不知道”。

我总是想将我的数据类型设置为 bool 值,但当然这只会给我是或否,通常默认设置为否。

我很好奇在这种情况下将什么数据类型设置为常见做法?

我可以使用整数并存储“1”、“2”或“3”。或者我可以存储一个字符串值,或 , 或 , 或。

这可能是一个愚蠢的问题,可能有上百万种方法可以做到这一点。但如果有人知道最佳实践方法以及为什么会有帮助。谢谢。

最佳答案

在数据库中, bool 值实际上可以表示三种状态 - true、false 和 NULL(前提是您允许在该列中使用 NULL)。

“我不知道”使用 NULL。

(并且可能将该列的默认值也设置为 NULL)

编辑:虽然想了一会儿,这可能会出现问题,具体取决于您的用例。某些高级语言(例如 Java)最终会将查询结果集中的 NULL 转换为 false。

::shrug::使用 varchar(1) ('t','f','u') 或可用的最小整数值(出于空间考虑)...两者都可以。

使用枚举是另一种选择,但请注意它不可移植(Oracle 是显着的问题子项)。

关于database - 不使用 bool 类型时用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7300414/

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