Webサイトの特定のコミュニティに参加しているユーザーの一覧を表すGroupMembersという名前のテーブルがあります。あなたが見ることができるように、私は、コミュニティ内のすべてのユーザの役割を表しての役割 'という名前のCHAR(1)列を、持っている内、SQL制約:一意でない列の一意の値
groupId | accountId | role
:
列は次のようになり。主キーは最初の2つの列で構成され、「ロール」はNOT NULLでもUNIQUEでもありません。
ここに問題があります:すべてのグループには、作成者のアカウントが指定されている必要があります。これは、GroupMembersにアカウントを追加し、 'ロール'の列に 'C'を入れて実装できると思います。 しかし、作成者が1人しかいない場合、グループ内の他のアカウントは「役割」として「C」を持つことはできません。
UNIQUEとは別に、 'role'列に 'C'を含む行が1つしかないかどうかを確認するための制約がありますか?ユーザーのタイプ)?