在存储血型时,哪种MySQL数据类型更可取(需要最少的数据量)?换句话说,存储一个到两个字母和“+”或“-”符号。
谢谢。
在存储血型时,哪种MySQL数据类型更可取(需要最少的数据量)?换句话说,存储一个到两个字母和“+”或“-”符号。
谢谢。
这高度取决于您的需求和想法。个人而言,我可能会为每种类型分配一个数字值,并使用tinyint
。然而,如果您希望行更直接可读,则CHAR(3)
或VARCHAR(3)
可能更合适。实际上,在这些罕见的情况下,我甚至建议使用ENUM
(因为您几乎不太可能需要添加或删除可能的值)。
ALTERing
一个ENUM
变得非常高效--_如果_你只在最后添加新值。 - Rick Jamestinyint
将是最佳选择。它甚至可以从表示A [yes | no] | B [yes | no] | positive [yes | no]的3位值进行编码,其中0为O negative。 - UueerdoCHAR(3)
在utf8中会占用更多的空间--始终为9个字节;而VARCHAR(3)
则不会,无论CHARACTER SET
如何(假设血型只使用英文字符),它都只会占用3-4个字节。 - Rick James
ENUM
_来解决这个问题。 - Rick James