Чтобы мутить воду, я предложу смесь.Начните с идеи @ GregSansom (upvoted), но вместо целых используйте тип данных CHAR(1)
со значениями I, J, S и D. Это даст вам ту же производительность, что и tinyint, и даст дополнительное преимущество простогопомнить мнемонику, когда (если) работает напрямую с данными.С небольшим количеством использования легко помнить, что «S» означает «старший», тогда как 3 не несет никакого встроенного значения - особенно если, как вы предлагаете, дополнительные значения добавляются со временем.(Добавьте «Испытательный», скажем, 5, и парадигма «низкий ранг = низкое значение» отсутствует в окне.)
Это работает, только если у вас очень короткий список предметов.Получите слишком много или слишком много похожих, и трудно будет использовать полезные коды.
Конечно, что если это последовательные значения?Конечно, звучит так, как здесь.В этом случае не делайте их 1,2,3,4, делайте их 10, 20, 30, 40, чтобы вы могли вставить новые классификации позже.Это также позволит вам легко реализовать диапазоны, такие как «все <30» (что означает «меньше, чем« старший »)». </p>
Я предполагаю, что моя главная мысль такова: знать ваши данные, как они будут использоваться, каксо временем оно может измениться или будет меняться, и соответственно планировать и кодировать!