1
resposta

Mais de um relacionamento 1:1 entre endidades

Como ficaria a entidade Endereço se houvesse outra entidade 1:1 se relacionando com ela?

Ex: CLIENTE (1,1) x (1,1) ENDERECO x (1,1) Fornecedor

Tendo somente um relacionamento, a entidade endereço recebe a propriedade ClienteID como PK e FK, mas como ficaria se houvesse mais de 1 relacionamento?

Não poderíamos incluir uma propriedade FornecedorID na entidade ENDERECO como PK porque não podemos ter duas PK na mesma tabela, também não poderíamos considerar que a tabela terá uma chave composta porque são dados distintos. A solução seria criar um ID para ENDERECO e duas FK (ClienteID e FornecedorID)?

1 resposta

Olá, Pablo

Você pode criar um ID para a entidade Endereço e adicionar duas FKs (ClienteID e FornecedorID), como você mencionou. Dessa forma, a tabela Endereço teria uma PK composta pelas FKs ClienteID e FornecedorID.

Por exemplo, a entidade Endereço ficaria assim:

public class Endereco
{
    public int EnderecoId { get; set; }
    public int ClienteId { get; set; }
    public int FornecedorId { get; set; }

    // outras propriedades do endereço
    // ...
}

Assim, você teria uma tabela Endereço com três colunas: EnderecoId, ClienteId e FornecedorId. A PK seria composta pelas colunas ClienteId e FornecedorId.

Dessa forma, cada registro na tabela Endereço estaria relacionado a um único Cliente e a um único Fornecedor.

Espero ter ajudado! Bons estudos!