Relacionar tablas en Mysql por consola

mysql

En el desarrollo de bases de datos relacionales se hace necesario establecer relaciones entre las entidades (tablas) de nuestra BD, normalmente si estamos en un entorno de producción utilizamos clientes que nos ayudan a optimizar y facilitar este proceso, mas sin embargo no todas las veces tenemos las facilidades que deseamos y debemos acceder por consola a ejecutar comandos SQL, en este artículo veremos como relacionar tablas en Mysql por consola teniendo como base un ejemplo muy práctico y algunos conceptos veamos:

Ejemplo práctico para relacionar tablas en mysql:

Digamos que debemos relacionar 2 tablas contenidas en una base de datos de un calendario de actividades que son las siguientes:

Persona:      {id_persona, nombres, apellidos, edad, direccion, email}
Actividades: {id_actividad, id_persona, fecha, hora, descripcion}

Si nos damos cuenta tendríamos una relación 1:N (Uno a Muchos) debido a que una sola persona puede contar con varias actividades.

Creando las tablas en la base de datos:

Tabla Persona:

create table persona (
id_persona int not null auto_increment,
nombres varchar(50) not null,
apellidos varchar(50) not null,
direccion varchar(120),
email varchar(120),
primary key(id_persona)
);

Tabla Actividades:

create table actividades (
id_actividad int not null auto_increment,
id_persona int not null,
fecha date,
hora time,
descripcion varchar(200),
primary key(id_actividad)
);

Como vemos hemos creado las tablas con las respectivas llaves primarias para cada una, si contamos con las tablas creadas podemos asignar las llaves primarias mediante el siguiente comando SQL:

alter table persona add primary key (id_persona);

Estableciendo la relación entre las dos tablas:

alter table actividades add foreign key(id_persona) references persona(id_persona);

Nota:

Cabe recordar que los campos que deseamos relacionar deben ser iguales, si nos damos cuenta en nuestro ejemplo el campo id_persona en cada tabla fue creado como int not null, de esta forma ya tendríamos el campo id_persona de la tabla actividades como una llave foránea que apunta hacia la tabla Persona.

Por último si generamos el MER (Modelo Entidad Relación) de nuestra base de datos podemos apreciar la relación que hemos creado de forma gráfica:

Modelo entidad relación