Ir para conteúdo

POWERED BY:

Arquivado

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

Daniel Guolo

Como fazer consulta diferente no Banco de dados

Recommended Posts

Preciso fazer um esquema de atualizações de eventos de usuários, quase como facebook ou orkut, claro que não tão complexo.

Ai criei as tabelas "usuarios", "atualizações"

 

Só que as atualizaçõe podem ser incluir uma imagem (tabela "fotos") ou enviar um comentário (tabela "comentarios"), etc

 

Tabela "atualizações"

CREATE TABLE `atualizacoes` (
 `Id` int(11) NOT NULL AUTO_INCREMENT,
 `tipo` varchar(255) DEFAULT NULL,
 `texto` varchar(255) DEFAULT NULL,
 `data_cad` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
 `usuario` int(11) DEFAULT NULL,
 `id_cont` int(11) DEFAULT NULL,
 PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

O tipo é o tipo da atualização, se for adicionar imagem vou colocar "fotos", se for enviar um comentário colocarei "comentarios", que são os nomes das tabelas e o id_cont é o id da atualização, o id da linha da imagem por exemplo.

 

Ai fiz o seguinte código mysql:

SELECT * FROM atualizacoes a 
LEFT JOIN usuarios u ON u.id = a.usuario
LEFT JOIN "a.tipo" ON i.id = a.id_cont
WHERE a.usuario = '$idUser'
ORDER BY a.data_cad DESC

 

No segundo LEFT JOIN tem que pegar a tabela que está no campo "a.tipo" que seria o tipo da atualização... Já tentei de várias formas, com variáveis e até agora nada. Se realmente existe alguma maneira de fazer isso ou que de o mesmo resultado...

 

Até sei de outra maneira de fazer, mas ai pesaria muito, que seria fazer uma busca para as linhas das atualizações e depois fazer outra busca para cada linha pegando a tabela dentro do "a.tipo".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma VIEW que unisse fotos e comentários poderia ser uma solução, haveria dois problemas possíveis.

Unir campos de tipos diferentes

e

A performance não deve ser das melhores.

----------------------------------------------

Acho que a solução que você mesmo propôs talvez seja a melhor.

----------------------------------------------

---------------------------

Adendo.

 

view tendo um select com union

create or replace view v_minhaview as 
select ...
from fotos
where ...
union
select ...
from comentarios
where ...

 

Ajudou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma VIEW que unisse fotos e comentários poderia ser uma solução, haveria dois problemas possíveis.

Unir campos de tipos diferentes

e

A performance não deve ser das melhores.

----------------------------------------------

Acho que a solução que você mesmo propôs talvez seja a melhor.

----------------------------------------------

---------------------------

Adendo.

 

view tendo um select com union

create or replace view v_minhaview as 
select ...
from fotos
where ...
union
select ...
from comentarios
where ...

 

Ajudou ?

 

Acho que no meu caso não seria o mais viavel, pois não sei quantos tipos de atualizações podem ter ainda, e pode ser um número grande, ai acho que fazer um union de tantas tabelas não vale a pena

 

Mas estava pensando derrepente nem vai funcionar a maneira que quero fazer...Ai acho que vai ter que ser do jeito que tu ta falando vou tentar...

 

E derrepente não pode ser um LEFT JOIN em cada tabela...?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que ficaria lento.

Pelo que vi a solução de ir montando query a query na aplicação me parece mais promissor.

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.