Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Какой индекс выбрать? / 4 сообщений из 4, страница 1 из 1
29.11.2012, 18:34
    #38058739
dblokhin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой индекс выбрать?
Здравствуйте.

Задача очень простая, но я хочу услышать комментарии опытных. Есть задача: вести учет голосования, так, чтобы один пользователь не мог несколько раз голосовать за один и тот же продукт.

Для учета голосов (чтобы гарантировать одноразовость голосов) сделана таблица: votes ( `user_id` , `product_id` )
Запросы к данной таблице будут с условием "WHERE `user_id` = N and `product_id` = K "

Интересует вот что. Какой индекс использовать? PRIMARY KEY ( `user_id` , `product_id` ) или обычный индекс KEY ( `user_id` , `product_id` )
Таблица InnoDB , поэтому, как понимаете, разница все-таки есть.

(данная таблица используется только для предотвращения множественных голосов за один продукт, т.е. при каждом голосе, будет SELECT на проверку, и далее INSERT, если пользователь не голосовал)
...
Рейтинг: 0 / 0
29.11.2012, 18:36
    #38058747
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой индекс выбрать?
я бы сделал PRIMARY KEY и один INSERT IGNORE вместо SELECT + INSERT.
...
Рейтинг: 0 / 0
29.11.2012, 18:47
    #38058773
dblokhin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой индекс выбрать?
miksoft, про INSERT IGNORE спасибо, однако есть нюанс. MySQL вернет какой-то код, с помощью которого я пойму, что сработал IGNORE?
Мне необходимо уведомить пользователя о том, что он уже голосовал за данный продукт.

Почему PRIMARY?
...
Рейтинг: 0 / 0
29.11.2012, 18:49
    #38058780
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой индекс выбрать?
dblokhinТаблица InnoDB, поэтому, как понимаете, разница все-таки есть.
Не-а. Нам на тараканов отдельных серверов глубоко положить.

Если нужно ограничение, то и делается ограничение, то бишь constraint. А как сервер этот
constraint будет обеспечивать это его, серверное, дело.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Какой индекс выбрать? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]