Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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:
----
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.
Carregando comentários...