1

SQL Server データベースで数千人のブール値 (「可用性」を表す) を効率的に格納してアクセスしようとしています。彼らは私に彼らが利用できないときの日付を教えてくれるので、私は彼らを代表し、スケジュールに対してプログラムで処理する必要があります.

言い換えれば、私は各人の 1 年の空き状況を毎日追跡できる必要があります (単純な Yes/No または True/False で十分です)。

私は Bitvector32 構造に出会い、それをうまく機能させました (背景についてはリンクを参照してください: How do I convert a SQL Server 'Int' field to 'BitVector32' within my C# program? )。それを作成し、int として DB に書き込み、C# プログラムに復元することができます。

問題は、この構造内に含まれるブール値に SQL 経由でアクセスできるようにしたいのですが、アクセスできないことです。

私の次のオプションは、その時点で必要な指定された日付に対してのみブール値の配列を作成し (24 回のオカレンスが機能します)、これを SQL サーバー テーブルに格納して、各人の Y/N を含めることです。ただし、これは初めてなので、SQL Server は配列を処理しないと聞いています。唯一のオプションは、SQL Server で 24 の一意の名前の「ビット」フィールドを定義し、それらを C# ブール配列からロードすることです。これは醜いようです。

誰かがより良い解決策を見ていますか、それとも私は近いですか?

4

1 に答える 1

0

SQL Server はビット演算子をサポートしています。Bitvector32通常のビット単位の算術「トリック」を使用してビットにアクセスします。bits & 1たとえば、ビット0を提供します。bits | 1ビット 0 を設定します。

于 2014-08-27T22:20:24.300 に答える