kelvim 11 Denunciar post Postado Dezembro 7, 2012 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
Prog 183 Denunciar post Postado Dezembro 7, 2012 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
kelvim 11 Denunciar post Postado Dezembro 7, 2012 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
Prog 183 Denunciar post Postado Dezembro 7, 2012 Como assim duas PK para pessoa? Deve haver algum problema no seu modelo. Compartilhar este post Link para o post Compartilhar em outros sites
kelvim 11 Denunciar post Postado Dezembro 7, 2012 1 para cliente outra para funcionario Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Dezembro 7, 2012 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
kelvim 11 Denunciar post Postado Dezembro 7, 2012 cara muito obrigado, agora eu entendi. valeu msmo, problema resolvido. Compartilhar este post Link para o post Compartilhar em outros sites