|
|
1
79
我把这个专栏叫做“性别”。
这个 BIT 可以排除数据类型,因为它只支持两种可能的性别,这是不充分的。当 INT 支持两个以上的选项,需要4个字节——使用更小/更窄的数据类型,性能会更好。
结论我将使用选项2:CHAR(1)。 附录性别列上的索引可能会 不 帮助,因为低基数列的索引中没有值。也就是说,索引的值没有足够的变化来提供任何值。 |
|
|
2
172
这已经有一个ISO标准;不需要发明自己的方案: http://en.wikipedia.org/wiki/ISO_5218 根据标准,该列应称为“Sex”,并且“closest”数据类型应为tinyint,并根据需要使用CHECK约束或查找表。 |
|
|
3
43
医学上有四种性别:男性、女性、不确定和未知。你可能不需要全部四个,但你肯定需要1,2,和4。此数据类型不适合使用默认值。更不用说把它当作带有“是”和“不是”状态的布尔值了。 |
|
|
4
3
一个
首先,如果你有一个
其次,字符串/字符对它们有一种“魔法价值”的感觉,不管它们在设计时看起来有多明显。更不用说,它可以让人们存储几乎任何他们不一定会映射到任何明显的价值。 第三,为了强制引用完整性,数字值更容易(而且更好的实践)为创建查找表,并且可以将1对1与枚举关联起来,因此在应用程序或数据库的内存中存储该值时存在奇偶校验。 |
|
|
5
3
我使用“f”、“m”和“u”字符是因为我从名字、声音和对话中猜测性别,有时不知道性别。最后的决定是他们的意见。 这真的取决于你对这个人的了解程度,以及你的标准是身体形态还是个人身份。一个心理学家可能需要额外的选择-交叉到女性,交叉到男性,转换到女性,转换到男性,两性和未决定。有了9个选项,没有一个字符明确定义,我可能会同意雨果关于小整数的建议。 |
|
|
6
1
选项3是您的最佳选择,但不是所有的数据库引擎都有一个“位”类型。如果你一点也没有,那么TinyINT是你最好的选择。 |
|
|
7
-5
我将使用选项3,但多个不可为空的位列而不是一个。 IsMale(1=是/0=否) 是女性(1=是/0=否) 如果需要: IsUnknownGender(1=是/0=否) 等等。。。 这使得易于读取定义、易于扩展、易于编程、不可能使用域外的值,也不需要第二个查找表+FK或检查约束来锁定值。 |
|
|
8
-5
|
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |