Jump to content

Recommended Posts

Posted

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,

Posted

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

Posted
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

Posted

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

Posted (edited)

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.

Edited by Rechousa

Pedro Martins

Sharing is Knowledge!

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

Posted

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)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.