Мне нужно хранить битовый массив для каждой записи таблицы, поддерживая следующие операции:
Тестирование, если бит установлен, и установка бит (с использованием SQL)
Запрос и установка значения с помощью ADO 2.8 (не ADO.NET)
Индексирование (для того, чтобы воспользоваться функцией «индекс покрытия»)
Максимальное количество битов, которые должны храниться в этом массиве, является фиксированным, но может превышать 32 . То есть простой столбец int не всегда работает.
Из того, что я видел до сих пор, мои варианты:
- Используйте несколько столбцов int
- Использовать bigint (работает до тех пор, пока число битов <= 64)
- Используйте бинарный
- ?
Первый вариант будет работать, но потребуется немало рефакторинга в коде, который обращается к данным. Второй вариант - только временное облегчение, и из моих поисков пока я не слишком уверен, хорошо ли работает ADO с bigint . У меня нет опыта работы с двоичным файлом , и я не знаю других вариантов.
Какой тип данных вы бы выбрали, учитывая требования?