Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Andreatti

BD com tabelas relacionadas

Recommended Posts

Boa tarde galera. Seguinte.

To criando um site para meu time de MMORPG.

Fui criando o banco e as tabelas, quando me deparei com o seguinte problema.

 

Eu preciso separar as informaçoes da seguinte forma.

Uma tabela chamada "char", uma "itens" e uma outra "adds".

Funciona da seguinte forma.

Exemplo:

Meu "char" tem 10 "itens", e cada iten PODE TER no maximo 7 "adds" (adds sao funcionalidades de cada iten).

Eu criei as tabelas da seguinte forma.

 

Char:

+---------+-------+-------+--------+-----------+-------+-------+
| id_char | nome  | nivel | classe | subclasse | reino | itens |
+---------+-------+-------+--------+-----------+-------+-------+

Itens:

+---------+-------+-------+
| id_iten | nome  | adds  |
+---------+-------+-------+

Adds:

+---------+-------+
| id_char | nome  |
+---------+-------+

Isso pq eu ainda quis simplificar pois se eu quisesse deixar o banco nos trinques msm a tabela adds iria ganahr mais campos e eu iria precisar de mais umas 3 tabelas pra acabar de completar essa parte.

 

Agora explicando o banco.

Na tabela char o campo "itens" seria uma chave estrangeira da tabela itens(isso eu li na net).

Na tabela itens o campo "adds" seria uma chave estrangeira da tabela adds.

 

Eu fiz aqui em casa e na hora de realizar a consulta(dentro do banco msm) nao funcionou.

Tipo. A consulta que eu quero fazer eh.

selecionar a tabela "char" pegar um campo especifico(isso seria o campo que eu quiser, vamos adotar como exemplo seleciona o char cujo nome seja igual a ...).

Essa minha consulta nao deu certo pois eu quero que na hora de mostrar o campo "itens" da tabela "char" ele pegue automaticamente os dados da tabela "itens" cujo id_itens pertença ao char selecionado, e que quando ele tiver fazendo isso e chegar no campo "adds" da tabela "itens" ele faça a msm coisa, ele pegue todos os dados da tabela "adds" referente ao char selecionado.

 

 

Espero que tenham entendido. Eu to a dois dias tentando achar algo na internet mais nao consigo fazer nada que acho funcionar.

Desde ja agradeço a ajuda. (ja estou desesperado :( )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Andreatti,

 

Bem, não sei se entendi bem o q você está querendo, mas vamos lá.

você terá q verificar alguns aspectos:

 

1º) A modelagem de dados: você fez os vínculos corretamente? Por exemplo:

Na tabela char, você tem o campo itens, este campo está igual ao criado na tabela Itens?

Use o DBDesigner para criar suas tabelas com todos os relacionamentos necessários.

 

2º) Tendo estes campos devidamente vinculados, é só usar o INNER JOIN, por exemplo:

 

SELECT A.id_char, A.nome, A.nivel, A.classe, A.subclasse, A.reino, A.itens,

B.nome, B.adds,

C.nome

FROM Char A

INNER JOIN Itens B ON (A.itens = B.id_iten)

INNER JOIN Adds C ON (B.adds = C.id_adds)

Se, na tabela Itens não receber valores da tabela Adds, você pode usar o LEFT JOIN:

 

SELECT A.id_char, A.nome, A.nivel, A.classe, A.subclasse, A.reino, A.itens,

B.nome, B.adds,

C.nome

FROM Char A

INNER JOIN Itens B ON (A.itens = B.id_iten)

LEFT JOIN Adds C ON (B.adds = C.id_adds)

Mas, para isso suas tabela deve estar corretamente moduladas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.