标题几乎构成了这个问题。我多年来没有使用过CHAR。现在,我正在反向工程一个遍历所有CHAR的数据库,用于主键,代码等。CHAR(30)列怎么样?
编辑:所以,一般的意见似乎是CHAR,如果对某些事情来说完全合适的话。但是,我认为您可以设计不需要“某些特定条件”的数据库模式,因此不需要固定长度的字符串。使用bit,uniqueidentifier,varchar和text类型,似乎在一个规范化的架构中,您将获得使用编码字符串值时所没有的某种优雅。以固定的长度思考,这并不意味着冒犯,这似乎是大型机时代的遗物(我本人曾经学习过RPG II)。我相信它已经过时,而且我没有听到您提出其他令人信服的论点。
数据的性质决定了字段的长度,我使用CHAR。否则为VARCHAR。