在逻辑/布尔数据库字段中使用[0,1]与["Y","N"]对比["T","F"]?

Che*_*eso 11 database-design boolean-logic boolean

只是出于好奇和缺乏明确的答案......

我只是查看从第三方发送给我们的一些数据,他们的"性别"字段是[0,1],表示女性(0)或男性(1).

有没有更好的理由使用[0,1]而不是["F","M"]?

它取决于场景和场地与其价值之间的直观性吗?

数据访问速度和/或大小限制?

如果月亮满了?


使用[0,1]与["Y","N"]与["T","F"]的区别是什么?

Rya*_*ndy 22

如果要混淆数据以使其他程序员难以理解它,最好使用0和1而不是F和M.

否则,不,没有优势.

另外,我可以给你一个主要的劣势. 我正在研究处理猪的应用程序.与其他一些雄性动物一样,雄性猪如果要用于食物而不是繁殖,则会被阉割,因为它会提高肉质.

该应用程序最初只跟踪男性和女性.但现在我们需要跟踪三种不同的性别:男性,女性和手推车(阉割猪的术语).如果有人决定在一个字段中使用0和1进行性行为,那么改变它会很痛苦.

  • 我可以看到这导致一个带有性别字段的表单,提供0和1作为选项.做出明智的选择. (5认同)
  • 对于手推车,您可以使用三个值bool:true,false,FILE_NOT_FOUND (3认同)

Zom*_*eep 7

我们不是忽视了明显的使用 - >外键吗?我知道最初的问题隐含了一个字段,但如果它是真正的数字,那么0,1性别列是否可以引用性别表?

  • 以下是来自美国政府的PDF,其中列出了8个性别可能性:http://www.aphis.usda.gov/vs/nahss/docs/surveillance_standards_appendixE_gender_codes.pdf (5认同)

Joh*_*lla 5

一个主要的优点是,如果您的假设发生变化,那么允许两个以上值的列可以自然地扩展。

同样,从哲学上讲,我们的性别/性观念比在二进制领域中解释的更为灵活。例如,当同性婚姻法获得通过时,我受雇为马萨诸塞州的一项主要政府申请进行修正,因为人们对婚姻做出了许多假设,但这些假设后来都无效了。