1
resposta

como relaciono 3 tabelas?

Olá gente e como eu relaciono 3 tabelas?

1 resposta

Oi, João! Tudo bem?

Desde já, peço desculpas pela demora em retornar.

O relacionamento entre três tabelas é, de certa maneira, comum quando estamos trabalhando com banco de dados. Para desenvolvê-lo, usaremos o nosso conhecimento sobre chaves estrangeiras!

Para construção desse tipo de relacionamento, imagine o seguinte caso: uma escola online que disponibiliza cursos deseja construir um banco de dados para um gerenciamento interno. Neste banco, existirão duas tabelas: aluno e curso.

No entanto, durante a construção, as pessoas que trabalham nessa escola notaram uma dificuldade em relacionar os alunos aos cursos e vice e versa, haja vista que:

  • Um aluno pode fazer um ou mais cursos;
  • Um curso pode ser feito por zero ou vários alunos.

Tentar usar somente uma chave estrangeira, nesse caso, parece meio complicado, não acha?

Quando estamos modelando um banco de dados, chamamos o relacionamento visto acima de muitos para muitos. Caso ele aparece em um projeto, é recomendada a criação de uma nova tabela, a qual será uma ponte entre as outras duas tabelas. Dessa forma, evitamos o surgimento de anomalias em nosso banco de dados.

Sendo assim, a equipe resolveu criar uma nova tabela chamada aluno_curso, a qual conectará a tabela aluno com a tabela curso. Após essa conclusão, chegou-se nas seguintes tabelas:

CREATE TABLE aluno (
   id SERIAL PRIMARY KEY,
   primeiro_nome VARCHAR(255) NOT NULL,
   ultimo_nome VARCHAR(255) NOT NULL,
   data_nascimento DATE NOT NULL
);
CREATE TABLE curso (
   id SERIAL PRIMARY KEY,
   nome VARCHAR(255) NOT NULL,
   categoria_id INTEGER NOT NULL REFERENCES categoria(id)
);
CREATE TABLE aluno_curso (
   aluno_id INTEGER NOT NULL REFERENCES aluno(id),
   curso_id INTEGER NOT NULL REFERENCES curso(id),
   PRIMARY KEY (aluno_id, curso_id)
);

Observe que, durante a criação de aluno_curso, os únicos campos determinados foram aluno_id e curso_id, que são, respectivamente, as chaves primárias das tabelas aluno e curso. A forma com que estabelecemos esses campos indica que eles serão chaves estrangeiras.

Dessa maneira, João, chegamos a um cenário em que há o relacionamento entre três tabelas!

Espero ter ajudado com a explicação! Caso surja alguma dúvida, fico à disposição.

Um forte abraço.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.