Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kelvim

[Resolvido] Modelagem de dados

Recommended Posts

Pessoal, não tenho certeza se é aqui mesmo que posta, mas to com uma duvida:

 

tenho um banco de dados que vai tratar de mensagens, a mensagem pode ser enviada de cliente > cliente, cliente > funcionário, funcionário > cliente, funcionário > funcionário. sendo que remetente é apenas um, ou seja ou um funcionário ou um cliente, jamais os dois.

 

eu criei a tabela mensagem e a tabela remetente com FK para cliente e funcionário, só que como eu posso colocar uma combinação para que ou eu tenha um ou eu tenha o outro, como obrigatório sempre um e nunca os dois.

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na tabela Pessoa a coluna id_pessoa relaciona 1-n com id_remetente na tabela Mensagem;

Na tabela Pessoa a coluna id_pessoa relaciona 1-n com id_destinatario na tabela Mensagem;

As tabelas Funcionario e Cliente são especializações da tabela Pessoa;

Compartilhar este post


Link para o post
Compartilhar em outros sites

MUITO OBRIGADO,

 

NOSSA OLHANDO ASSIM PARECE TÃO OBVIO. RSRS

 

cara agora que eu tava criando a tabela pessoa, me pareceu meio que apenas uma tabela associativa, sendo que ao unir os dois criasse duas PK para pessoas, aquando relaciono pessoa a MSG ele cria em MSG as FK para cliente e funcionário, neste caso ter a tabela pessoa, me pareceu pouco útil, já que em MSG terei de qualquer forma as duas FK.

 

e isso tudo deu um nó na minha cabeça, se puder dar uma ajudinha para desembaralhar tudo. obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nop...

 

Pessoa tem apenas 1 PK, pode chamar id_pessoa, tanto faz. Esta chave faz parte da chave primária nas tabelas Funcionario e Cliente, fica um exemplo:

 

PESSOA

idcliente

strnome

strendereco

numcpf

datnascimento

 

CLIENTE

idcliente

idpessoa FK PESSOA

stremail

 

FUNCIONARIO

idfuncionario

idpessoa FK PESSOA

nummatricula

 

MENSAGEM

idmsg

idremetente FK PESSOA

iddestinatario FK PESSOA

idmsgresposta FK MENSAGEM

txtmensagem

datenvio

datleitura

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.