Ir para conteúdo

POWERED BY:

Arquivado

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

bigueee

Select para gerar estatísticas do usuário

Recommended Posts

Preciso carregar diversos números referentes a um determinado usuário da minha base para montar uma página que demonstra a participação dele nos registros.

 

Minha ideia foi fazer uma VIEW com todos os dados que vou precisar para que sempre que necessário eu faça um SELECT direto nela com o ID do usuário que eu preciso.

 

Estou com dúvida de qual a melhor maneira de fazer esse SELECT, segue abaixo a maneira que fiz que mostra atualmente quantas notícias e artigos ele tem cadastrados, separados em inativo e ativo:

 

SELECT U.id_usuario,
(SELECT SUM(IF(N.status = 0, 1, 0)) FROM noticia N WHERE N.id_usuario = U.id_usuario) AS noticia_inativa,
(SELECT SUM(IF(N.status = 1, 1, 0)) FROM noticia N WHERE N.id_usuario = U.id_usuario) AS noticia_ativa,
(SELECT SUM(IF(A.status = 0, 1, 0)) FROM artigo A WHERE A.id_usuario = U.id_usuario) AS artigo_inativo,
(SELECT SUM(IF(A.status = 1, 1, 0)) FROM artigo A WHERE A.id_usuario = U.id_usuario) AS artigo_ativo
FROM usuario U

 

Minhas dúvidas são:

- Essa é a melhor maneira de recuperar esses dados?

 

- Além desses dois itens (artigos e notícias), existirão mais uns 4 ou 5 itens, com o aumento dos registros isso vai acabar ficando impraticável em termos de tempo de carregamento? (Como vou sempre trazer os dados de um usuário por vez, estou com a ideia de que não vai ficar lento)

 

----

 

Recebi uma sugestão anteriormente que resumindo seria inserir os contadores em colunas na própria tabela USUARIO, o que faria com que todo UPDATE, INSERT E DELETE desses itens (notícias, artigos, etc), eu precisaria atualizar o CONTADOR na tabela USUARIO.

 

Seria um trabalho a mais porém simplificaria a consulta em um SELECT apenas o que me traria ganho de desempenho segundo a pessoa que me sugeriu.

 

Pensando só na parte do SELECT para montar as estatísticas realmente parece que ficaria bem mais simples e rápido, minha dúvida é quanto a manutenção desses contadores, vale a pena ou fica muito gambiarra?

 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho a impressão que apenas um select com todos os critérios de busca seja o suficiente, se bem entendi seu problema. Se houverem tabelas relacionadas as informações ficam acessíveis de forma mais clara. De qualquer forma aguarde novas opiniões.

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.