«Правильно» - сильное слово, но большинство людей, вероятно, будут использовать VARCHAR
. CHAR
тоже вариант, но в моем опыте он используется не так часто. Эта страница объясняет разницу.
Одно из заметных отличий между CHAR
и VARCHAR
в последних версиях MySQL заключается в том, что CHAR
не способен хранить конечные пробелы (поскольку столбец автоматически дополняется до максимальной длины пробелами). Поэтому, если вы сохраните что-то вроде 'abc '
, оно будет восстановлено как 'abc'
. Это может не иметь значения для большинства приложений, но об этом следует помнить. Аналогично, до 5.03 конечные пробелы удаляются из полей VARCHAR
перед вставкой. Поэтому, если вам нужно хранить произвольные байтовые значения и не беспокоиться о различном поведении между версиями MySQL, вам следует использовать один из типов BLOB
.