[英]SQL Constraints: Unique value in a non-unique column
我有一個名為GroupMembers的表,它代表網站上某些社區的用戶列表。
列看起來像這樣:
groupId | accountId | role
如您所見,內部有一個名為“ role”的CHAR(1)列,它代表社區中每個用戶的角色。 主鍵由前兩列組成,“角色”既不是NOT NULL,也不是UNIQUE。
現在,這里出現了問題:每個組都必須指定其創建者的帳戶,我認為可以通過將帳戶添加到GroupMembers並將“ C”放入其“角色”列來實現。 但是只能有一個創建者,該組中的其他帳戶不能將“ C”作為其“角色”。
是否有約束條件可以讓我檢查“角色”列中是否只有一行帶有“ C”的字符,除了UNIQUE以外(我不能使用,因為其他類型的用戶可以有任意數量) ?
存在這樣的約束。 。 。 但不是在MySQL中。 其他數據庫允許您實現過濾索引或計算列上的索引。
相反,您可以讓創建者在Groups
表中實現此邏輯:
alter table groups add column creatorUserId int;
alter table groups add constraint fk_groups_creatorUserId
foreign key creatorUserId references users(creatorUserId);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.