我有一个表格,用于存储用户对网站上图片的评论。该表由四列组成,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';
gotchya(gotme?)是表是innoDB,因为它预计会变得非常大。这是一种可行的方法,尽管存在主键吗?
答案 0 :(得分:13)
是的,这将完美无缺。
在另一个主题中,为什么你有一个row_id
?您只需将主键设为(image_id, user_id)
,这也可以。