多対 1 の関係を説明するテーブルがあります。たとえば、Pictures と Albums の間です。アルバムのカバー画像として、アルバムごとに 1 つの画像のみを選択できるようにしたいと考えています。現在、テーブルは次のようになっています。
AlbumID int primary key,
PictureID int,
IsCover bool
スキーマ全体を変更したくないと仮定すると (解決策は、「is cover of」関係を別のテーブルに移動して、1 対 1 の関係を定義することですが、既に実装されているクエリを変更しないことをお勧めします別のテーブルを追加することによって)、同じ AlbumID を持つすべてのエントリの IsCover が false に設定されていることを強制する方法はありますか?
サーバー側のソリューションを探しています。私は Microsoft SQL Server 2012 を使用しています。ここでは UNIQUE 制約を適用できません。そうしないと、すべてのアルバムにカバーと非カバーしかありません。私はすでにアプリケーションにチェックを実装していますが、追加の安全層が必要です。
前もって感謝します。