Позвольте мне поделиться с вами своим опытом. У меня была похожая потребность хранить битовую маску прав приложений.
Это довольно просто реализовать, вы просто делаете поле стандартным целочисленным типом и AND с соответствующей битовой маской, чтобы проверить, установлен ли конкретный элемент, и используете OR, чтобы установить конкретный элемент.
Тем не менее, я сожалею об этом сейчас. Это на самом деле делает ваш код более сложным, и я усвоил сложный способ, что вы не сможете получить сколько-нибудь значимого использования индексов для этого столбца, что приведет к низкой производительности запросов. Примите мой совет и сделайте это как 7 отдельных битовых / булевых полей, особенно учитывая, что они не изобретают новые будни в ближайшее время, поэтому гибкость использования битовой маски в любом случае является пустой тратой. Умное решение для битовой маски не окупается.