2013-07-24 191 views
1

我有一個名爲group Info的表。它有三個字段,分別是id,user_id和group_id。 我的問題是如何分配唯一的用戶到一個組中,同一個用戶不能在同一個組中重複。 組信息的表結構如下;需要Mysql幫助

id   int(11) Auto increment,Primary key NOT NULL, 

user_id int(11) Not Null, 

group_id int(11) Not Null 

我所做的USER_ID unique.But有兩組(2 GROUP_ID(1和2))。選擇爲用戶提供了B組的錯誤重複的條目。 user_id = 1,2,3,4,5,6,7,8; group_id = 1,2;

請幫助我如何解決這個問題。我英語不好,所以對我的語言表示歉意。

+0

根據你的問題,一個用戶應該與一個獨特的組相關聯。這裏1-1 group_id和user_id之間的關係。 Group_id也應該是唯一的。因此,您刪除爲groupB –

回答

0
ALTER TABLE `tbl_name` ADD UNIQUE (
`col1` , 
`col2` 
); 

用user_id和col2將col1與group_id和tbl_name一起更改爲表名。

0

如果user_id是唯一的,那麼你可能不應該創建一個連接表:只需添加一個組指針到用戶表。

如果,另一方面,用戶可以屬於多個組,那麼當前的設計可能是合適的,但你不應該讓user_id獨特的(儘管你可能要做出獨特複合鍵組合user_idgroup_id)。

+0

分配的重複記錄,sir用戶表包含註冊用戶。註冊後,我將其分配給組。我從用戶表中獲取用戶列表,並將它們分配給我存儲在組表中的組。分配後,我將其存儲在組信息表中,具有上述三個字段。現在如果我不保留user_id唯一,那麼同一用戶可以被分配給兩個我不想要的組? –

+0

@muhammadmaaz再次閱讀我的答案(特別是關於**複合鍵**的部分):我回答了您正在問的問題。 – Curt