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)
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.