Tôi cần lưu trữ một mảng bit cho mỗi bản ghi của bảng, hỗ trợ các hoạt động sau:
Kiểm tra nếu một bit được đặt và thiết lập một bit (sử dụng SQL)
Truy vấn và thiết lập giá trị bằng ADO 2.8 (không phải ADO.NET)
Lập chỉ mục (để hưởng lợi từ tính năng "bao gồm chỉ mục")
Số lượng bit tối đa được lưu trữ trong mảng này là cố định, nhưng có thể vượt quá 32 . Đó là, một cột int đơn giản không phải lúc nào cũng hoạt động.
Từ những gì tôi đã thấy cho đến nay, các lựa chọn của tôi là:
- Sử dụng một số cột int
- Sử dụng bigint (hoạt động miễn là số bit là <= 64)
- Sử dụng nhị phân
- ?
Tùy chọn đầu tiên sẽ hoạt động, nhưng đòi hỏi khá nhiều cấu trúc lại trong mã truy cập dữ liệu. Tùy chọn thứ hai chỉ là một cứu trợ tạm thời và từ các tìm kiếm của tôi cho đến nay tôi không chắc chắn liệu ADO có hoạt động tốt với bigint hay không . Tôi không có kinh nghiệm về nhị phân và tôi không biết về bất kỳ lựa chọn nào khác.
Loại dữ liệu nào bạn sẽ chọn, đưa ra các yêu cầu?