mais de um dado para um campo

PostgreSQL

20/05/2015

Olá bom dia a todos!...
Bom eu tenho a tabela personagem e tabela raca(raça).

create table personagem(
id int not null primary key,
Nome varchar(40),
id_raca int,
foreign key(id_raca) references raca(id),
);
create table raca(
id int not null primary key,
raca varchar(10)
);
Minha dúvida é a seguinte ...bom cada personagem tem um raça,mas um deles é mestiço tem várias raças.
Eu gostaria de saber se quando eu for relacionar as duas tabelas, ou seja fazer uma consulta dos personagens e suas respectivas raças , se teria a possibilidade de listar todas as raças deste específico personagem sem precisar intitulá-lo "mestiço".
Obrigado...aguardo resposta
Alef Santos

Alef Santos

Curtidas 0

Melhor post

Jair N.

Jair N.

20/05/2015

Olá bom dia a todos!...
Bom eu tenho a tabela personagem e tabela raca(raça).

Boa Tarde, existe uma incoerência aqui, com relação a uma raça designada como "mestiço" onde você poderá definir quais são as raças envolvidas na miscigenação e que fizeram parte para essa nova?
Exemplo:
Para a situação atual de um personagem, o relacionamento é de apenas uma única raça já definida, e não várias.
Ou, você pode criar a situação de uma terceira tabela definindo esse processo de miscigenação para a tabela de personagens, ou relacionada para a tabela de raças.
Ou, uma terceira opção, você pode alterar sua tabela de raças do tipo de "plano de conta" onde uma classe inferior foi gerada de uma outra superior. Como a exemplo se tem na contabilidade ao invés de uma hierarquia terá que ter duas neste seu caso. Exemplo deste tipo com as cores onde: azul e amarelo resultado verde, vermelho com amarelo resultado laranja e assim por diante, onde a primária resulta noutra de escalão secundário, terciário etc.

create table personagem(
id int not null primary key,
Nome varchar(40),
id_raca int,
foreign key(id_raca) references raca(id),
);
create table raca(
id int not null primary key,
raca varchar(10)
);
Minha dúvida é a seguinte ...bom cada personagem tem um raça,mas um deles é mestiço tem várias raças.
Eu gostaria de saber se quando eu for relacionar as duas tabelas, ou seja fazer uma consulta dos personagens e suas respectivas raças , se teria a possibilidade de listar todas as raças deste específico personagem sem precisar intitulá-lo "mestiço".
Obrigado...aguardo resposta
GOSTEI 1

Mais Respostas

Marcos P

Marcos P

20/05/2015

Sim, essa possibilidade pode ser implementada considerando uma terceira tabela chamada "personagem_raca", que será criada apenas para acomodar o relacionamento de 1 : N entre as tabelas.

Ou seja, não vai mais existir a FK de raça na tabela personagem.

Essas chaves estarão na nova tabela, com as seguintes colunas :

> personagem_id
> raca_id

Para determinar as raças de um determinado personagem, localize as várias linhas do personagem nessa nova tabela.

Para determinar quais os personagens de determinada raça, faça o contrário, localizando os diversos personagens de determinado raca_id.

Entendeu a ideia ?
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

20/05/2015

Achei interessante a tua observação Jair!

Alef, fiquei curiosa por saber qual foi a solução adotada... O que vc decidiu? Continua com dúvida?
GOSTEI 0
POSTAR