VARCHAR
Худший тип для использования в этом сценарии, так как другие упомянутые Вы можете рассмотреть ENUM
, INT
или таблицу отношений с ролями.
Различия:
При использовании ENUM
для вставки записей можно использовать литералы и номер в качестве значений. При повторном выборе Вы можете использовать как литералы, так и цифры в WHERE
, но возвращаемые значения будут строками, если вы хотите получить номера. Вы должны выбрать columnsname+0
в списке полей.
При использовании INT
Вы можете использовать только цифры.
Похоже, что ENUM
должно быть лучше плюс, если вы создадите некоторые статические константы для хранения числовых значений в вашем коде, все станет проще.
Теперь отношение лучше, чем ENUM
?
Если вам требуется гибкость и вы хотите добавить новые роли из таблицы отношений PA, это единственное решение, которое вы должны рассмотреть.
Если ваши роли постоянны и никогда не будут меняться, то ENUM
лучше, без необходимости участия в JOIN.
Рассмотрите возможность принятия нижеследующего ответа. – Kermit