ホームページ >データベース >mysql チュートリアル >フィルターされたインデックスは SQL Server でどのように条件付き一意制約を強制できますか?
SQL Server のフィルターされたインデックスを使用した条件付き一意制約
データベース設計では、条件付きの一意性制約が必要になる場合があります。つまり、別の列が特定の条件を満たす場合にのみ、列セットに一意性が適用されます。 これは、アクティブなレコードと非アクティブなレコードを管理し、データの整合性を維持する場合に一般的です。 SQL Server のフィルターされたインデックスは、効率的なソリューションを提供します。 フィルターされたインデックスは、フィルター述語によって定義されたテーブルの行のサブセットに一意のインデックスを作成します。
レコードのステータスに基づいた一意性の実装
ID
、Name
、RecordStatus
列を持つテーブルを想像してください。 ID
(アクティブなレコード) の場合にのみ、(RecordStatus
, RecordStatus = 1
) に一意の制約が必要です。 フィルタリングされたインデックスはこれを実現します。
<code class="language-sql">CREATE UNIQUE INDEX MyIndex ON MyTable (ID) WHERE RecordStatus = 1;</code>
これにより、ID
が 1 の場合にのみ RecordStatus
の一意性が保証され、同じ RecordStatus = 2
を持つ複数の非アクティブ (ID
) レコードが許可されます。
レコードステータスを超えて: 多彩な条件付きの一意性
フィルターされたインデックスはレコードのステータスに限定されません。 これらにより、さまざまな基準に基づいてデータの一意性をきめ細かく制御できるようになり、データの整合性とパフォーマンスが向上します。
フィルタリングされたインデックスの利点
トリガーなどの代替手段と比較して、フィルターされたインデックスには次の利点があります。
概要
SQL Server のフィルターされたインデックスは、条件付き一意制約を強制する堅牢かつ効率的な方法を提供します。 データの整合性、パフォーマンス、ストレージの最適化の間のバランスを提供します。
以上がフィルターされたインデックスは SQL Server でどのように条件付き一意制約を強制できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。