所有选项都占用相同的空间,使得性能等同于JOIN /等.
BIT如果有可能改变价值,那么这不是最明智的选择. CHAR(1)可立即读取IE:Y,N,O. TINYINT是您希望通过外键关联的表中主键的不错选择,并将描述性文本存储在另一列中.
CHAR(1)如果不使用外键关系,将是我的选择,TINYINT否则.
使用CHAR(1),具有单个字符的自然主键是不太可能的.假设一个基于主角的自然键失败,如果你有两个以相同角色开头的单词,并且如果标签需要改变则会导致悲伤,因为键也应该改变并且永久存在(除非你是懒惰的并且像解释一样)为什么代码不遵循与其他代码相同的方案).CHAR(1)还提供了TINYINT所做的大约五分之一的可能性(假设上端,52个区分大小写的值) - 人工/代理键与描述变化隔离开来.