powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Какой индекс выбрать?
4 сообщений из 4, страница 1 из 1
Какой индекс выбрать?
    #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
Какой индекс выбрать?
    #38058747
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы сделал PRIMARY KEY и один INSERT IGNORE вместо SELECT + INSERT.
...
Рейтинг: 0 / 0
Какой индекс выбрать?
    #38058773
dblokhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, про INSERT IGNORE спасибо, однако есть нюанс. MySQL вернет какой-то код, с помощью которого я пойму, что сработал IGNORE?
Мне необходимо уведомить пользователя о том, что он уже голосовал за данный продукт.

Почему PRIMARY?
...
Рейтинг: 0 / 0
Какой индекс выбрать?
    #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]