Ответ 1
Да, это будет работать отлично.
В другой теме, почему у вас есть row_id
? Вы можете просто перенести первичный ключ как (image_id, user_id)
, это тоже будет работать.
У меня есть таблица, в которой хранятся комментарии пользователей о изображениях на сайте. Таблица структурирована с четырьмя столбцами, row_id, которая является первичным ключом, image_id, user_id и комментарием. Я хочу, чтобы пользователь мог оставить только один комментарий для каждого изображения. Я просто создаю уникальный индекс в двух столбцах?
CREATE UNIQUE INDEX imgusr ON comments (image_id, user_id);
Идея состоит в том, чтобы получить следующий запрос:
INSERT INTO comments SET image_id = '1', user_id = '2', comment = 'nice' ON DUPLICATE KEY UPDATE comment = 'nice';
Получаем (gotme?) является то, что таблица является innoDB, потому что ожидается, что она станет очень большой. Это подход, который будет работать, несмотря на наличие первичного ключа?
Да, это будет работать отлично.
В другой теме, почему у вас есть row_id
? Вы можете просто перенести первичный ключ как (image_id, user_id)
, это тоже будет работать.