Dodanie trzeciej kolumny ID tylko ze względu na dodanie kolumny ID nie ma sensu. W rzeczywistości po prostu zwiększa koszty przetwarzania (obsługa indeksu) podczas wstawiania lub usuwania wierszy.
Klucz podstawowy niekoniecznie jest „kolumną identyfikatora”.
Jeśli zezwolisz na powiązanie tylko jednego elementu między użytkownikiem a elementem (użytkownikowi nie można przypisać dwa razy tego samego elementu), sensowne jest zdefiniowanie (userid, itemid)
jako klucz podstawowy Twojej tabeli.
Jeśli pozwolisz, aby ta sama para pojawiła się więcej niż raz, to oczywiście nie potrzebujesz tego ograniczenia.