Sobes.tech
Junior — Middle

Como organizar uma relação de 'muitos para muitos' entre entidades numa base de dados?

sobes.tech IA

Resposta da IA

A relação de 'muitos para muitos' numa base de dados é geralmente implementada através de uma tabela intermédia (tabela de junção), que contém chaves estrangeiras para ambas as entidades relacionadas.

Por exemplo, existem entidades Student e Course. Um estudante pode frequentar muitos cursos, e um curso pode ter muitos estudantes. Para isso, cria-se uma tabela StudentCourse com duas colunas: StudentId e CourseId.

Exemplo em C# usando Entity Framework Core:

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<Course> Courses { get; set; }
}

public class Course
{
    public int Id { get; set; }
    public string Title { get; set; }
    public ICollection<Student> Students { get; set; }
}

// No EF Core 5 e versões superiores, é possível configurar a relação sem uma entidade explícita para a tabela de junção

Desta forma, a relação é implementada através de uma tabela adicional que armazena pares de registos relacionados.