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.