Несколько уникальных столбцов, но только уникальные комбинации

Я столкнулся с проблемой с уникальными признаками MySQL. Я хочу сделать что-то вроде этого:

идентификатор_пользователя
1        1
1        2
1        3
2        1
2        4

Где может быть несколько экземпляров одного и того же идентификатора пользователя, а также несколько экземпляров идентификаторов групп, но допускаются только уникальные комбинации обоих. Я использую это с ON DUPLICATE KEY UPDATE MySQL запрос, и мне интересно, что мне нужно сделать с индексами в таблице. В настоящее время у меня есть это:

ПЕРВИЧНЫЙ ID
UNIQUE  user_id, group_id

Но... а) этого достаточно и б) правильно ли я делаю, чтобы получить то, что я ищу?

Спасибо за любую помощь

Джеймс

1 ответ

Решение

Вы почти получили это. Если вы используете движок MyISAM, вы можете сделать это:

CREATE TABLE your_table(
id int unsigned not null auto_increment,
group_id int unsigned,
primary key(group_id, id)
) ENGINE = MyISAM;

Попробуйте и посмотрите, как он будет увеличивать идентификатор, как вы указали в своем примере, и у вас также будет уникальное ограничение.

Другие вопросы по тегам