Ir para conteúdo

Arquivado

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

cristianomg

Relação entre tabelas de uma rede social

Recommended Posts

E ae pessoal.

Na verdade venho aqui solicitar um auxilio de análise que tabelas.

Estou criando um trabalho do TCC e vou incluir tipo um facebook de assuntos de forum de discussão, só que não sei como fazer a relação das postagens onde eu gero a lista de minhas postagens e queria que nesta lista também tivesse as postagens das pessoas que aceite como amigas(os).

 

 

 

Minha tabela de "linha tempo" seria +/- assim:

 

 

id - nome - postagem

1 JOAO MATEMATICA TA UMA COISA DE LOUCO

2 ANA PORTUGUES TA UMA COISA DE LOUCO

3 DOUGLAS RELIGIAO TA UMA COISA DE LOUCO

4 LUCIA FILOSOFIA TA UMA COISA DE LOUCO

5 JOANA EDU. FISICA TA UMA COISA DE LOUCO

6 EDUARDA HISTORIA TA UMA COISA DE LOUCO

7 IZABEL CIENCIA TA UMA COISA DE LOUCO

8 CARLOS BIOLOGIA TA UMA COISA DE LOUCO

 

 

Eu pensei e criei um tabela de usuario_amigos

 

id - usuario - id_amigo

1 1 3

2 1 6

3 2 7

Eu queria que ao listar, apresentasse as minhas postagens e mais as postagens dos meus amigos onde na tabela usuario_amigos o usuário logado "1" tem amigos do id 3 e 6 e listasse essas postagens também.
fiz um select mais ou menos assim:
SELECT m.publicacao as post, m.id_logado as Id FROM minha_linha_tempo m, usuarios_amigos u
where m.id_logado = u.id_logado (pega da linha tempo o id do usuario que esta logado)
and u.id_logado = 1 (pega as postagens dos amigos que tenha o usuario logado )
O meu raciocinio não ficou claro e objetivo neste sql.

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao.. uma maneira simples de resolver é que a pessoa seja amiga dela mesma.

 

entao...

select * from tabela where id_postante in (select id_amigo from usuario_amigo where usuario = '$id_usuario_atual')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa giesta, perfeito entendi e funcionou, porém, sempre tem um porém. :yes:

Ele não me retornou as imagens de cada usuario que postou ele gerou a postagem da mesma imagem na quantidade de vezes conforme a relação de meus amigos para o meu id.

SELECT u.nome AS nome, u.foto AS foto, FROM postamigos p, usuarios u 	
WHERE p.id_logado = u.id in (select id_amigo from rel_amigos where id_logado = 1) 

Na rel_amigos tenho conforme meu id = 1 os amigos:

 

id idlogado idamigo

 

1 1 1

2 1 3

3 1 7

 

 

Na tabela postamigos eu teria as postagens:

 

id idlogado comentario foto

1 1 user 1 fuca.jpg

2 3 user 3 pato.jpg

3 12 user 12 cadeira.jpg

4 7 user 7 camaro.jpg

5 1 user 1 feijao.jpg

6 2 user 2 pizza.jpg

7 7 user 7 morte.jpg

8 7 user 7 caneca.jpg

9 2 user 2 janela.jpg

10 8 user 8 jipe.jpg

11 3 user 3 faca.jpg

 

Ele esta mostrando

 

idlogado comentario foto

1 user 1 fuca.jpg

3 user 1 fuca.jpg

7 user 1 fuca.jpg

1 user 3 pato.jpg

7 user 3 pato.jpg

7 user 3 pato.jpg

3 user 3 camaro.jpg

 

Então esta repetindo a imagem para a quantidade de amigos na tabela relação...

Vou ter de relacionar as tres tabelas entre si então...seria essa a saída?

 

, pois na tabela usurios eu só compardo o u.id para pegar o nome do postador?

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.