¡Hola, bienvenid@s a todos! Continuando con el curso de MySQL 8 desde Cero, hoy veremos a más detalle lo que son claves primarias, foráneas y relaciones entre tablas en MySQL.
En una base de datos relacional, las claves primarias, claves foráneas y relaciones entre tablas son elementos fundamentales para asegurar la integridad y eficiencia del almacenamiento de datos.
¡Empecemos!
Las claves primarias (Primary Keys)
Una clave primaria es un atributo (o un conjunto de atributos) que identifica de manera única a cada registro en una tabla. Cada tabla debe tener una clave primaria para asegurar que no haya duplicados y que cada fila sea única.
Por ejemplo, si agarramos la tabla “Clientes” podemos notar que creamos el campo “Id” que representa la clave primaria de esta tabla y tiene características que no puede ser nulo (vacío) y es autoincremental (aumenta secuencialmente sin necesidad de que se envíe un valor desde una vista o formulario. De esta manera, el sistema se encarga de asignar un valor único automáticamente).
`id` int NOT NULL AUTO_INCREMENT,
Las claves primarias son cruciales para establecer relaciones con otras tablas y garantizar la coherencia de los datos.
Claves foráneas (Foreign Keys)
Una clave foránea es un atributo en una tabla que se relaciona con la clave primaria de otra tabla. Crea una conexión entre dos tablas, permitiendo establecer relaciones entre ellas.
Por ejemplo, tenemos la tabla “Mascotas” que contiene un campo “cliente_id” que identifica al cliente al que pertenece la mascota, podemos establecer una relación entre las tablas “Clientes” y “Mascotas” haciendo que “cliente_id” en la tabla “Mascotas” sea una clave foránea que se refiere a la clave primaria “Id” en la tabla “Clientes”.
CONSTRAINT `cliente_id` FOREIGN KEY (`cliente_id`) REFERENCES `clinica_veterinaria`.`clientes`(`id`)
Relaciones entre tablas
Las relaciones entre tablas definen cómo se conectan las tablas en una base de datos relacional. Estas relaciones se crean mediante el uso de claves primarias y claves foráneas. Existen tres tipos de relaciones que son: uno a uno, uno a muchos y muchos a muchos.
Ejemplo relación uno a uno (one-to-one)
Una relación uno a uno en nuestra base de datos base “clínica_veterinaria” podría ser la tabla “Mascotas” y otra la tabla “Kardex”. Cada mascota puede tener un único kardex, y cada kardex está asociado a una sola mascota. En este caso, la relación entre ambas tablas es uno a uno.
Ejemplo relación uno a muchos (one-to-many)
En nuestra base de datos de “clínica_veterinaria”, tenemos una tabla de “Clientes” y una tabla de “Mascotas”. Cada mascota pertenece a un único cliente (relación uno a muchos), por lo que podríamos agregar una clave foránea en la tabla “Mascotas” que se relacione con la clave primaria de la tabla “Clientes”.
Ejemplo relación muchos a muchos (many-to-many)
Una relación muchos a muchos en nuestra base de datos “clínica_veterinaria” podría ser la tabla “Mascotas” y otra tabla “Servicios”. Una mascota puede realizar varios servicios, y cada servicio puede ser realizado a varias mascotas. En este caso, la relación entre ambas tablas es muchos a muchos.
Para representar la relación muchos a muchos, necesitamos una tabla intermedia que actúe como un puente entre “Mascotas” y “Servicios”. Esta tabla intermedia contiene los “Ids” de ambas tablas.
Si tienes alguna duda o consulta déjanos un mensaje para aclarar tus dudas. En la siguiente clase veremos como Insertar registros en nuestra base de datos en MySQL
¡Te espero en la próxima clase!
Saludos y éxitos.

Victor Peña
Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.