2010-07-15 2 views
0

Я знаю, может быть, это глупый вопрос, но я сосать по sqlКакой тип поля?

Но какой тип поля у вас есть на поле, которое может иметь только цифры от 1 до 5? 5 - макс и 1 - мин. Это в настоящее время int(11) not unsigned

Я слышал, имеющий неправильный тип может повредить Performace

редактирование: база данных InnoDB. RDBMS - это MySQL

ответ

2

В зависимости от вашей РСУБД, идите с целым числом, которое может содержать небольшое значение.

MySQL has a tinyint datatype, который имеет размер 1 байт, и имеет значения 0-255 или -128 до 127.

MySQL apparently doesn't have check constraints implemented в текущей версии, так что вы должны либо применять ваши требования 1-5 диапазона себя в другом коде. Есть несколько предложений по написанию триггера для обеспечения выполнения этой бизнес-логики.

Вы правильно относитесь к производительности с повреждением данных, но в этом случае он вряд ли применим. Рассмотрим эту микро-оптимизацию, но ее стоит рассмотреть.

+3

Святая корова! MySQL не соблюдает контрольные ограничения ?! Это основной инструмент для обеспечения целостности данных. Это практически преступный. – Thomas

+0

спасибо большое! я могу проверить это с помощью php – Damjan

0

Какая платформа базы данных?

Я бы выбрал самый маленький и добавил ограничение проверки для хорошей оценки качества и целостности данных.

Для SQL Server это будет tinyint (0-255).

Смежные вопросы