テーブルの各レコードにビット配列を保存し、次の操作をサポートする必要があります。
ビットが設定されているかどうかのテスト、およびビットの設定(SQLを使用)
ADO 2.8(ADO.NETではない)を使用した値のクエリと設定
インデックス作成(「カバーインデックス」機能を活用するため)
この配列に格納されるビットの最大数は固定されていますが、32を超える場合があります。つまり、単純なint列は常に機能するとは限りません。
これまで見てきたことから、私のオプションは次のとおりです。
- 複数のint列を使用する
- bigintを使用します(ビット数が64以下である限り機能します)
- バイナリを使用
- ?
最初のオプションは機能しますが、データにアクセスするコードにかなりのリファクタリングが必要です。2番目のオプションは一時的な救済であり、これまでの検索では、ADOがbigintでうまく機能するかどうかはあまりわかりません。binaryの経験がなく、他のオプションを認識していません。
要件を考慮して、どのデータ型を選択しますか?