J'ai besoin de stocker un tableau de bits pour chaque enregistrement d'une table, prenant en charge les opérations suivantes:
Tester si un bit est défini et définir un bit (à l'aide de SQL)
Interrogation et définition de la valeur à l'aide d'ADO 2.8 (pas d'ADO.NET)
Indexation (afin de bénéficier de la fonctionnalité "Covering Index")
Le nombre maximal de bits à stocker dans ce tableau est fixe, mais peut dépasser 32 . Autrement dit, une simple colonne int ne fonctionne pas toujours.
D'après ce que j'ai vu jusqu'à présent, mes options sont les suivantes:
- Utiliser plusieurs colonnes int
- Utiliser bigint (fonctionne tant que le nombre de bits est <= 64)
- Utiliser binaire
- ?
La première option fonctionnerait, mais nécessiterait un peu de refactorisation dans le code qui accède aux données. La deuxième option est un soulagement temporaire uniquement, et d'après mes recherches jusqu'à présent, je ne suis pas trop sûr si ADO fonctionne si bien avec bigint . Je n'ai aucune expérience avec binaire et je ne connais aucune autre option.
Quel type de données choisiriez-vous, compte tenu des exigences?