Mysql Datatype - Enum или нет в Enum, может ли Enum быть пустым?

У меня большая БД (много миллионов строк), и я пытаюсь сделать лучший выбор типов данных для 2 полей. Почти все, что я сделал, varchar или INT.Тем не менее, 2 поля. Мне интересно, является ли Enum лучшим способом.

Поле 1 Первое поле - пол. Мои данные в настоящее время либо «Мужской», либо «Женский», или это может быть пустым. Сначала я настроил его так:

GENDER VARCHAR(6) NOT NULL

Это лучший способ, или лучше было бы установить его как:

GENDER ENUM ('Male', 'Female') NOT NULL

И мне нужно сделать его НЕ NULL, чтобы разрешить пробел, или мне нужно чтобы добавить пробел, т.е.

GENDER ENUM ('Male', 'Female', '') NOT NULL

Не говоря уже о том, что я рассматриваю возможность преобразования всего поля только в M или F.

Поле 2: Мне нужно учесть примерно то же самое , за исключением поля состояния, которое может включать 52 значения (50 состояний, DC, плюс пробел).

Думаю, самый большой вопрос - стоит ли того, чтобы вся эта ерунда Enum? В моей БД много миллионов строк, поэтому все является фактором, но должен ли я просто использовать VARCHAR (2) для состояний вместо ENUM.

12
задан Johan - reinstate Monica 5 October 2011 в 21:23
поделиться