AJBM Posted December 26, 2012 at 10:52 PM Report #488521 Posted December 26, 2012 at 10:52 PM 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,
NunoDinis Posted December 26, 2012 at 10:59 PM Report #488522 Posted December 26, 2012 at 10:59 PM 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
AJBM Posted December 26, 2012 at 11:02 PM Author Report #488523 Posted December 26, 2012 at 11:02 PM A minha duvida é : se na mesma tabela posso referenciar os mesmos atributos em tabelas diferentes
Rechousa Posted December 26, 2012 at 11:24 PM Report #488531 Posted December 26, 2012 at 11:24 PM 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
NunoDinis Posted December 26, 2012 at 11:25 PM Report #488532 Posted December 26, 2012 at 11:25 PM Sim, e podem ter ligação ou não. Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
AJBM Posted December 26, 2012 at 11:27 PM Author Report #488533 Posted December 26, 2012 at 11:27 PM Mas se por exemplo Bi do funcionário for diferente do bi aluno, Aluno Bi A12345678 Funcionário Bi F12345677 também é possivel
NunoDinis Posted December 26, 2012 at 11:29 PM Report #488535 Posted December 26, 2012 at 11:29 PM 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
AJBM Posted December 26, 2012 at 11:34 PM Author Report #488541 Posted December 26, 2012 at 11:34 PM 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
Rechousa Posted December 26, 2012 at 11:40 PM Report #488544 Posted December 26, 2012 at 11:40 PM (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 December 26, 2012 at 11:46 PM by Rechousa Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
AJBM Posted December 27, 2012 at 10:30 AM Author Report #488573 Posted December 27, 2012 at 10:30 AM 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)
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now