2013-07-24 4 views
1

У меня есть таблица с именем group Info. Он имеет три поля: id, user_id и group_id. Мой вопрос заключается в том, как назначать уникальных пользователей группе i-e. Один и тот же пользователь не может быть повторен в одной и той же группе. Структура таблицы для группы Информация следующая:Необходимая помощь 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)). Выбор пользователей для GroupB дает ошибку повторяющиеся записи. 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` 
); 

Изменение col1 с user_id и col2 с group_id и tbl_name с вашим именем таблицы.

0

Если user_id уникален, то вам, вероятно, не следует создавать таблицу соединений: просто добавьте указатель на группу пользователя.

Если, с другой стороны, пользователь может принадлежать более чем к одной группе, то ваш текущий дизайн, вероятно, подходит, но вы не должны делать user_id уникальных (хотя вы, возможно, захотите сделать уникальную композитный ключ на от user_idиgroup_id).

+0

Таблица sir users содержит зарегистрированных пользователей. После регистрации я назначаю их группе. Я получаю список пользователей из таблицы users и назначая им группы, которые я сохранил в таблице групп. После назначения я храню его в группе Info table, описано выше три поля. Теперь, если я не сохраню уникальность user_id, то тот же пользователь может быть в группе дважды, которую я не хочу? –

+0

@muhammadmaaz Прочтите мой ответ еще раз (особенно часть о ** составном ключе **): Я ответил именно на вопрос, который вы задаете. – Curt

Смежные вопросы