MySQLTabla de mapeo de muchos a muchos


Observaciones

  • Falta de un ID de AUTO_INCREMENT para esta tabla: la PK dada es la PK 'natural'; No hay una buena razón para un sustituto.
  • MEDIUMINT : este es un recordatorio de que todos los INTs deben hacerse tan pequeños como seguros (más pequeños ⇒ más rápidos). Por supuesto, la declaración aquí debe coincidir con la definición en la tabla a la que está vinculado.
  • UNSIGNED : Casi todos los INT también pueden ser declarados no negativos
  • NOT NULL - Bueno, eso es verdad, ¿no es así?
  • InnoDB : más eficiente que MyISAM debido a la forma en que la PRIMARY KEY está agrupada con los datos en InnoDB.
  • INDEX(y_id, x_id) - La PRIMARY KEY hace que sea eficiente ir en una dirección; el hace la otra dirección eficiente. No hace falta decir UNIQUE ; eso sería un esfuerzo extra en INSERTs .
  • En el índice secundario, decir que solo INDEX(y_id) funcionaría porque incluiría implícitamente x_id . Pero preferiría que sea más obvio que espero un índice de "cobertura".

Es posible que desee agregar más columnas a la tabla; esto es raro. Las columnas adicionales podrían proporcionar información sobre la relación que representa la tabla.

Es posible que desee agregar restricciones FOREIGN KEY .

Tabla de mapeo de muchos a muchos Ejemplos relacionados