Как сохранить последовательность цифр (или последовательность символов из некоторого другого набора)?

Я хочу сохранить некоторую последовательность цифр, которая может быть числом (например, 12345, 1230) или нет (например, 00123, 0120). Какой тип столбца является наиболее эффективным (по памяти, по скорости индексации) для этой цели?

Кроме того, мне нужно хранить строки символов из специально определенного алфавита (например, "цифры и запятые" или "цифры и английские буквы, точки и запятые"). Как эффективно это сделать?

Могу ли я установить ограничения на CHAR/VARCHAR тип столбца для уменьшения объема памяти он занимает?

2 ответа

Для sql вы можете пойти с

varchar() и если вы используете POSTgreSQL, вы можете использовать что-то, известное как citext

Это ничем не отличается от любого строкового столбца, который подразумевает тип varchar/text.

VARCHAR(n) динамически заботится о хранении.

Ссылка здесь.


Для ограничения разрешенных символов вы можете использовать ограничения CHECK, но они не работают в MySQL, поэтому обходной путь должен использовать триггер и определять принятые символы там. Смотрите этот вопрос. Вы могли бы использовать REGEXP функция для определения вашего допустимого алфавита.

Другие вопросы по тегам