私は、ユーザーがサイト上のイメージに関するコメントを格納するテーブルを持っています。表は、主キーであるrow_id、image_id、user_idおよびコメントの4つの列で構成されています。私がしたいことは、ユーザーがイメージごとに1つのコメントしか残せないようにすることです。 2つの列にユニークなインデックスを作成するだけですか?MySQLユニークな列の組み合わせを作成する
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テーブルであるということです。これはプライマリキーの存在にもかかわらず、動作するアプローチですか?
試しましたか?あなたはそれが失敗したり、それがうまくいかないことについて心配していますか? – outis
私は実際にあるシステムから別のシステムに変換しています。最初のテーブルはかなり大量になります(最初の数週間で2百万に成長すると予想されています)ので、私はこのことについて絶対に確信したいと思います最初から正しい方法。 – Wige