Na modelagem de banco de dados, é comum que existam relacionamentos muitos-para-muitos entre as entidades. Isso significa que uma entidade pode estar relacionada a várias outras entidades e vice-versa. Para lidar com esses relacionamentos, é necessário criar uma tabela intermediária que irá relacionar as duas entidades.
No MySQL, é possível criar uma tabela intermediária utilizando as chaves primárias e estrangeiras. Considere o seguinte exemplo, em que temos uma tabela de alunos e uma tabela de disciplinas, e precisamos relacionar os alunos que estão matriculados em cada disciplina:
sqlCREATE TABLE aluno (
id INT PRIMARY KEY,
nome VARCHAR(50)
);
CREATE TABLE disciplina (
id INT PRIMARY KEY,
nome VARCHAR(50)
);
CREATE TABLE matricula (
id INT PRIMARY KEY,
id_aluno INT,
id_disciplina INT,
FOREIGN KEY (id_aluno) REFERENCES aluno(id),
FOREIGN KEY (id_disciplina) REFERENCES disciplina(id)
);
Nesse exemplo, a tabela matricula
é a tabela intermediária que relaciona as tabelas aluno
e disciplina
. Ela possui duas chaves estrangeiras, uma referenciando a tabela aluno
e outra referenciando a tabela disciplina
. Para inserir um aluno na disciplina, basta inserir um novo registro na tabela matricula
, informando o ID do aluno e o ID da disciplina. Por exemplo:
sqlINSERT INTO matricula (id_aluno, id_disciplina) VALUES (1, 1);
Esse comando adiciona um novo registro na tabela matricula
, relacionando o aluno com ID 1 à disciplina com ID 1. É importante notar que, ao criar a tabela matricula
, definimos o campo id
como chave primária. Isso garante que não haverá duas matrículas com o mesmo ID.