Мені потрібно зберігати бітовий масив для кожного запису таблиці, підтримуючи такі операції:
Тестування, якщо встановлено біт, і встановлення біта (за допомогою SQL)
Запит і встановлення значення за допомогою ADO 2.8 (не ADO.NET)
Індексація (щоб отримати перевагу від функції "індекс покриття")
Максимальна кількість бітів, що зберігаються в цьому масиві, фіксована, але може перевищувати 32 . Тобто, простий стовпець int не завжди працює.
З того, що я бачив досі, мої варіанти:
- Використовуйте кілька стовпців int
- Використовуйте bigint (працює до тих пір, поки кількість бітів <= 64)
- Використовуйте двійкове
- ?
Перший варіант буде працювати, але вимагає зовсім небагато рефакторингу в коді, який отримує доступ до даних. Другий варіант - лише тимчасове полегшення, і з моїх пошуків поки що я не надто впевнений, чи добре працює ADO з bigint . Я не маю досвіду роботи з бінарними і не знаю жодних інших варіантів.
Який тип даних ви б обрали, враховуючи вимоги?