Вы обязательно должны использовать INT
(если вам нужно 32 флага) или BIGINT
(для 64 флагов). Если вам нужно больше флагов, вы можете использовать BINARY
(но вам, вероятно, также следует спросить себя, зачем вам так много флагов в вашем приложении).
Кроме того, если вы используете целочисленный тип, вы можете использовать стандартные побитовые операторы напрямую, без преобразования байтового массива в целочисленный тип.
Если вам нужно больше флагов и вы должны использовать BINARY
, вы теряете встроенную поддержку для побитовых операторов и, следовательно, простую поддержку для проверки значений флагов. Возможно, я бы перенес проверку значений флагов в клиентское приложение, но если вам удобно программировать на T-SQL, это тоже вариант. Если вы используете C #, у вас есть класс BitArray
с необходимыми операциями, а в Java у вас есть класс BitSet
.