Preciso armazenar uma matriz de bits para cada registro de uma tabela, suportando as seguintes operações:
Testando se um bit está definido e definindo um pouco (usando SQL)
Consultando e definindo o valor usando o ADO 2.8 (não o ADO.NET)
Indexação (para se beneficiar do recurso "índice de cobertura")
O número máximo de bits a serem armazenados nesta matriz é fixo, mas pode exceder 32 . Ou seja, uma coluna int simples nem sempre funciona.
Pelo que vi até agora, minhas opções são:
- Use várias colunas int
- Use bigint (funciona desde que o número de bits seja <= 64)
- Use binário
- ?
A primeira opção funcionaria, mas requer bastante refatoração no código que acessa os dados. A segunda opção é apenas um alívio temporário e, de minhas pesquisas até agora, não tenho muita certeza se o ADO funciona tão bem com bigint . Não tenho experiência com binário e não conheço outras opções.
Que tipo de dados você escolheria, considerando os requisitos?