Definitivamente, debe utilizar un INT
(si necesita 32 indicadores) o BIGINT
(para 64 indicadores). Si necesita más banderas, puede usar BINARY
(pero probablemente también debería preguntarse por qué necesita tantas banderas en su aplicación).
Además, si utiliza un tipo integral, puede usar el estándar bitwise operators directamente sin convertir una matriz de bytes a un tipo integral.
Si necesita más indicadores y tiene que usar BINARY
, pierde soporte nativo para los operadores bit a bit y, por lo tanto, soporte sencillo para verificar los valores de los indicadores. Probablemente movería la búsqueda de valores de bandera a una aplicación cliente, pero si te sientes cómodo programando en T-SQL también es una opción. Si está utilizando C# tiene una clase BitArray
con las operaciones necesarias y en Java tiene una clase BitSet
.
sí, ¿o evento los tipos más pequeños como tiny int para máscaras de bits más pequeños? Nunca he usado una pequeña int como máscara de bit, pero no debería ser un problema. El trabajo de int es genial. –
Los tipos más pequeños para máscaras más pequeñas también son una buena idea. –
¿Cómo podemos usar varbinary cuando tenemos, por ejemplo, 100 banderas? ¿Se puede usar varbinary tan flexible como int o bigint? No es posible realizar una operación bit a bit en dos varbinary. ¿Cómo podemos imitar el comportamiento de int-flag? – aldebaran