bigueee 0 Denunciar post Postado Janeiro 13, 2012 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
MauroWebTs 0 Denunciar post Postado Janeiro 18, 2012 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