ホームページ > データベース > mysql チュートリアル > データベースレコードに固有のデフォルトフラグを適用するにはどうすればよいですか?

データベースレコードに固有のデフォルトフラグを適用するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-30 01:31:09
オリジナル
472 人が閲覧しました

How to Enforce a Unique Default Flag in Database Records?

データベース レコードに固有のデフォルト フラグを適用する

データベース管理では、多くの場合、特定のデータセット内の 1 つのレコードのみがフラグを設定できるようにする必要があります。デフォルトとしてマークされます。たとえば、システムには、請求目的のデフォルトとして 1 人の顧客だけが指定されている顧客レコードのコレクションが存在する場合があります。この要件に対処するために、データベース制約を実装できます。

一意のフィルター インデックスの使用

SQL Server 2008 以降では、一意のフィルター インデックスを使用することで効率的なソリューションが提供されます。 :

CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
ON TableName(FormID)
WHERE isDefault = 1
ログイン後にコピー

このシナリオでは、テーブル構造は以下が含まれます:

CREATE TABLE TableName(
    FormID INT NOT NULL,
    isDefault BIT NOT NULL
)
ログイン後にコピー

このインデックスにより、特定の FormID に対して、isDefault フラグを 1 に設定できるのは 1 つのレコードだけであることが保証されます。同じ FormID を持つ複数のレコードがこのフラグを設定しようとすると、エラーが発生します。例:

一意のインデックス 'IX_TableName_FormID_isDefault' を持つオブジェクト 'dbo.TableName' に重複キー行を挿入できません。重複キーの値は (1) です。

一意のフィルター処理されたインデックスを利用すると、指定された条件 (この場合は FormID) ごとに 1 つのレコードのみをデフォルトとして指定できるように制約を効果的に実装できます。

以上がデータベースレコードに固有のデフォルトフラグを適用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート