Ir para o conteúdo
AJBM

Chave Estrangeira

Mensagens Recomendadas

AJBM

Boas!

Gostava de saber se é possível na mesma tabela fazer referencia ao mesmo atributo em diferente tabelas, por exemplo

Aluno(BI,Nome,Idade)

Pessoa(Bi,Nome)

Funcionario(BI,Nome)

Se na tabela pessoa eu fizer isto funciona FOREIGN KEY (Bi) REFERENCES Aluno(Bi),

FOREIGN KEY (Bi) REFERENCES Funcionario(Bi),

Ps: O EXEMPLO É UM BOCADO ESTÚPIDO,

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

A tua dúvida consiste em saber se podes, em tabelas diferentes, ter nomes já referenciados noutras ?


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rechousa

Viva,

Boas!

Gostava de saber se é possível na mesma tabela fazer referencia ao mesmo atributo em diferente tabelas, por exemplo

Aluno(BI,Nome,Idade)

Pessoa(Bi,Nome)

Funcionario(BI,Nome)

Se na tabela pessoa eu fizer isto funciona FOREIGN KEY (Bi) REFERENCES Aluno(Bi),

FOREIGN KEY (Bi) REFERENCES Funcionario(Bi),

Ps: O EXEMPLO É UM BOCADO ESTÚPIDO,

Antes de mais o exemplo deve estar ao contrário, ou seja... Como pessoa é mais "geral" do que aluno ou funcionário, então a tabela pessoa seria a tabela que seria refereciada pelas outras e não o contrário.

Precisarias disto (não testei):

ALTER TABLE Aluno ADD CONSTRAINT Aluno_Pessoa_FK FOREIGN KEY (BI) REFERENCES Pessoa (BI);
ALTER TABLE Funcionario ADD CONSTRAINT Funcionario_Pessoa_FK FOREIGN KEY (BI) REFERENCES Pessoa (BI);

Espero ter ajudado.


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis
A tua dúvida consiste em saber se podes, em tabelas diferentes, ter nomes já referenciados noutras ?

O que é que eu te perguntei ?

Podes ter nomes dos campos iguais em tabelas diferentes, que podem ser chaves ou não.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
AJBM

Não é bem o nome mas sim o conteúdo, se o conteúdo for diferente, Aluno Bi A12345678 Funcionário Bi F12345677 em que no Aluno temo um AnumeroBi e no Funcionário temos um FnumeroBI

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rechousa

Não é bem o nome mas sim o conteúdo, se o conteúdo for diferente, Aluno Bi A12345678 Funcionário Bi F12345677 em que no Aluno temo um AnumeroBi e no Funcionário temos um FnumeroBI

Porque é que tens isso assim? Podias usar uma chave composta ou até um campo calculado. Teres, na tabela Aluno um campo que contém A+BI não faz muito sentido, afinal... todos começam por A. Qual a utilidade disso?

O mesmo acontece na tabela funcionario.

Editado por Rechousa

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
AJBM

Para resolver este problema eu posso ter na tabela pessoa um atributo que identifique se é Aluno ou Funcionário e fazer do Bi e Tipo chave composta como tu sugeriste em cima, por exemplo

Pessoa(Bi,Nome,Tipo)

Aluno(Bi,Nome,Idade,Tipo)

Funcionário(Bi,Nome,Tipo)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.