23

我有一个表格,用于存储用户对网站上图像的评论。该表由四列构成,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,因为它预计会变得非常大。尽管存在主键,但这是可行的方法吗?

4

1 回答 1

13

是的,这将完美地工作。

在另一个主题中,你为什么有一个row_id?您可以简单地将主键设置为(image_id, user_id),这也可以。

于 2011-05-10T20:10:23.583 回答