Mam tabelę, która przechowuje komentarze użytkowników dotyczące obrazów w witrynie. Tabela ma strukturę czterech kolumn: row_id, który jest kluczem podstawowym, image_id, user_id i komentarzem. Chcę tylko, aby użytkownik mógł zostawić tylko jeden komentarz na obraz. Czy po prostu utworzę unikalny indeks na dwóch kolumnach?MySQL Utwórz unikalną kombinację kolumn
CREATE UNIQUE INDEX imgusr ON comments (image_id, user_id);
Chodzi o to, aby uzyskać następujące zapytanie do pracy:
INSERT INTO comments SET image_id = '1', user_id = '2', comment = 'nice' ON DUPLICATE KEY UPDATE comment = 'nice';
gotchya (? Gotme) jest to, że tabela jest InnoDB, ponieważ oczekuje się, aby uzyskać bardzo duże. Czy takie podejście zadziała, pomimo obecności klucza podstawowego?
Spróbowałeś? Czy martwisz się, że to się nie udaje, lub że osiąga słabe wyniki? – outis
Obie. W rzeczywistości przechodzę z jednego systemu na drugi, a początkowy stół będzie dość masywny (4 miliony wierszy natychmiast, w pierwszych kilku tygodniach ma wzrosnąć do 20 milionów), więc chcę być absolutnie pewny, że będę o tym mówić właściwą drogę od samego początku. – Wige