Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Sollten Primärschlüssel immer zu einer Innodb-Tabelle hinzugefügt werden?

Das Hinzufügen einer dritten ID-Spalte nur um des Hinzufügens einer ID-Spalte willen macht keinen Sinn. Tatsächlich fügt es einfach den Verarbeitungsaufwand (Indexwartung) hinzu, wenn Sie Zeilen einfügen oder löschen.

Ein Primärschlüssel ist nicht unbedingt "eine ID-Spalte".

Wenn Sie nur eine einzige Zuordnung zwischen Benutzer und Artikel zulassen (einem Benutzer kann nicht zweimal derselbe Artikel zugewiesen werden), ist es sinnvoll, (userid, itemid) zu definieren als Primärschlüssel Ihrer Tabelle.

Wenn Sie zulassen, dass dasselbe Paar mehr als einmal erscheint, brauchen Sie diese Einschränkung natürlich nicht.