2013-07-24 156 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