【发布时间】:2015-04-26 00:24:08
【问题描述】:
对于诸如
这样的形式知道时间吗?是或否
如果是,则询问时间输入。
时间灵活吗?是或否
如果是,则询问小时数输入
应该如何将表单提交记录在数据库中?
是否应该在数据库中记录所有 4 个字段(本例中为 2 个布尔值和 2 个非布尔值)?还是只存储 2 个非布尔值并将该字段存储为 null,如果该字段具有来自表单的 No 值?
是否值得在数据库中有一个字段用于从表单提交是/否?如果是这样,如果字段的存在为否,那么非布尔字段的值是多少?
上述重复问题并未解决为字段存在存储布尔值的问题。它只讨论了 MySQL DB 表字段中没有数据的表示。
【问题讨论】:
-
如果它是可选的,则将其存储为空值比存储额外的布尔值更常见,因为它需要更少的簿记。
-
布尔字段有什么价值吗?
null通常表示“这里没有值”,所以如果您需要存储的只是没有值的事实,那么列中的null条目似乎可以捕捉到这一点。如果布尔字段只是重复该事实,那么您实际上是将相同的数据存储了两次。历史上很难保持相同数据的副本同步。 -
"是否值得在数据库中有一个字段用于从表单提交是/否?" 否
-
为了方便用户,表单可以提出“是”或“否”问题。当它可以存储为表示 YES 或 NULL 表示 NO 的值时,将其存储在 DB 中是没有意义的。