sql >> Base de Datos >  >> RDS >> Mysql

¿Deberían agregarse siempre claves primarias a una tabla innodb?

Agregar una tercera columna de ID solo por agregar una columna de ID no tiene sentido. De hecho, simplemente agrega una sobrecarga de procesamiento (mantenimiento de índice) cuando inserta o elimina filas.

Una clave principal no es necesariamente "una columna de ID".

Si solo permite un único asociado entre el usuario y el elemento (a un usuario no se le puede asignar el mismo elemento dos veces), entonces tiene sentido definir (userid, itemid) como la clave principal de su tabla.

Si permite que el mismo par aparezca más de una vez, por supuesto que no necesita esa restricción.