Ajouter une troisième colonne ID juste pour ajouter une colonne ID n'a aucun sens. En fait, il ajoute simplement une surcharge de traitement (maintenance d'index) lorsque vous insérez ou supprimez des lignes.
Une clé primaire n'est pas nécessairement "une colonne ID".
Si vous n'autorisez qu'une seule association entre l'utilisateur et l'élément (un utilisateur ne peut pas être affecté deux fois au même élément), il est logique de définir (userid, itemid)
comme clé primaire de votre table.
Si vous autorisez la même paire à apparaître plus d'une fois, vous n'avez bien sûr pas besoin de cette contrainte.