En este post de base de datos en MySQL te mostraré cómo crear una tabla con relaciones, es decir, un ejemplo de uso para que puedas guiarte. Simplemente vamos a relacionar dos tablas usando foreign key y primary key.
Vamos a relacionar las tablas en el momento de la creación de las mismas.
Si solo vienes por la sintaxis o un ejemplo simple para relacionar tablas, recuerda que en la principal debes declarar un id (puede ser autoincrementable) que sea la primary key:
CREATE TABLE tabla(
id bigint unsigned not null primary key auto_increment,
otro_campo varchar(255) not null
);
Presta atención al tipo de dato. En este caso es un bigint unsigned
. Ahora en la otra tabla haces dos cosas; declaras el id de la tabla a la que te refieres, y luego usas foreign key
para indicar la relación:
CREATE TABLE otra_tabla(
id bigint unsigned not null primary key auto_increment,
un_campo varchar(255) not null,
id_tabla_principal bigint unsigned not null,
foreign key (id_tabla_principal) references tabla(id) on delete cascade on update cascade
);
Si te fijas, estamos declarando también el id propio de la segunda tabla.
Lo que crea la relación es declarar el campo id_tabla_principal
que relacionará a la otra tabla, y la relación se indica usando foreign key
indicando que se va a usar la columna id_tabla_principal
la cual se refiere a la columna id
dentro de la tabla llamada tabla
.
De este modo puedes relacionar varias tablas entre sí, ya sea con un campo, dos, o más. En el ejemplo voy a relacionar más tablas.
Lo que vamos a hacer para ejemplificar es relacionar 3 tablas. Las segundas no tienen relación entre sí, pero la tercera las va a tener una relación de ambas:
CREATE TABLE estudiantes(
id bigint unsigned not null primary key auto_increment,
nombre varchar(255) not null,
grupo varchar(255) not null
);
CREATE TABLE materias(
id bigint unsigned not null primary key auto_increment,
nombre varchar(255) not null
);
CREATE TABLE notas_estudiantes_materias(
id bigint unsigned not null primary key auto_increment,
id_estudiante bigint unsigned not null,
id_materia bigint unsigned not null,
puntaje decimal(9,2) not null,
foreign key (id_estudiante) references estudiantes(id) on delete cascade on update cascade,
foreign key (id_materia) references materias(id) on delete cascade on update cascade
);
En este caso es para relacionar estudiantes, notas y materias. Es un ejemplo sencillo que convertido a diagrama se ve así:
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.