Pessoal, estou voltando a estudar sobre bancos de dados, nunca havia usado o SQLServer, mas devido um projeto que estou desenvolvendo vi a necessidade de usá-lo.
Por algum tempo fiquei batendo cabeça em como fazer relacionamento de tabelas usando o EntityFramework no .Net6 inserindo os valores do SQL Server. Acredito que consegui fazer os relacionamentos, mas o diagrama construído me deixou com dúvidas.
Como veem na imagem anexo, tenho 5 tabelas, onde a principal é a pessoa, nela, configurei quais campos receberiam a FK configurei com as Ids das respectivas, mas o desenho do diagrama me faz entender que fiz o contrário. No caso, uma pessoa, pode ter mais de um endereço, mais de uma profissão, mais de um contato, entretanto como o símbolo de infinito está em tblPessoa fiquei na dúvida. Alguém pode me explicar se está certo por favor.
Imagem segue abaixo (espero ter colocado direitinho hehehhe)
Relacionamento de tabelas SQL Server com EntityFramework
2 Respostas
O ERM (Entity Relationship Model) da Base de Dados é independente do motor de BD usado (MySQL, SQL Server, PostgreSQL, Oracle,…) e do ORM usado (EntityFramework, Hibernate, SQL direto…).
No teu caso, se uma pessoa pode ter vários endereços, tens a relação ao contrário. Da forma como tens apenas podes associar um endereço a uma pessoa (coluna PessoaEndereco em tblPessoa). O mesmo se aplica a todas as outras relações. O que tens de ter é uma FK nas tabelas de “detalhes” para tblPessoa(PessoaId) .
Então eu configurei o relacionamento ao contrário mesmo?
Pois é, lendo com calma tua resposta agora que notei. Então eu deveria haver uma relação N:N entre as tabelas tblPessoa e tblEndereco o que significaria precisar de uma nova tabela? Já que uma pessoa pode ter mais de um endereço e um endereço, muitas vezes, tem mais de uma pessoa residindo.
