Queries Principais
Ouvir conteúdo
Clique para ouvir o texto completo1. Consulta da Fila do Pregão (catalogo.php)
Função:
-
Retorna a lista de moedas/cédulas em fila de pregão aberta.
-
Inclui imagens, lance inicial, status e estatísticas de lances.
Observações Técnicas:
-
Subqueries para
COUNTeMAXpodem ser substituídas porLEFT JOINem tabelas agregadas para melhorar performance em grandes filas. -
Ordenação coloca primeiro as peças em leilão ativo (
fimPregao IS NOT NULL) e depois as aguardando.
2. Inserção de Lance (lance_antecipado.php)
Função:
-
Registra um novo lance no pregão.
Regras importantes implementadas no PHP:
-
Aceita apenas lances maiores que o último.
-
Em caso de lance igual, apenas o primeiro é aceito (não há empate).
Sugestões:
-
Adicionar triggers ou constraints para reforçar a regra de lances maiores diretamente no banco.
-
Indexar
(idMoeda, idAnuncio, valor_lance)para acelerar consultas deMAX(valor_lance).
3. Consulta de Lances da Peça
Função:
-
Recupera o maior lance atual para exibição.
-
data_hora ASCgarante que, em caso de empate de valores, o primeiro lance vence.
Observações:
-
Essencial para validar regras de empate do pregão.
-
Pode ser otimizada com índice em
(idMoeda, idAnuncio, valor_lance, data_hora).
4. Consulta para Catálogo de Moedas / Cédulas
Função:
-
Retorna informações detalhadas das peças que estão na fila de pregão, usadas no catálogo e ficha técnica.
Sugestões:
-
Usar
JOINao invés deINpara performance em grandes volumes. -
Padronizar campos exibidos (
nome,pais,ano,descricao) para facilitar front-end.
5. Contagem de Peças na Fila
Função:
-
Fornece quantidade total de peças na fila para exibição no cabeçalho do catálogo.
Sugestão:
-
Criar query preparada com cache periódico, evitando contagem repetida em cada refresh da página.
6. Atualização de Status de Pregão
Função:
-
Marca pregão como encerrado e define hora de finalização.
Observações:
-
Essencial para sincronização com front-end (ex.: destaque da próxima moeda).
-
Recomenda-se criar função PHP centralizada para atualização, evitando inconsistências.
7. Recomendações Gerais para Queries
-
Use Prepared Statements em todas as queries com parâmetros externos.
-
Indices adequados:
(idMoeda, idAnuncio, valor_lance, data_hora)para performance. -
Evitar subqueries em SELECT quando possível; substituir por
JOIN+GROUP BY. -
Auditoria: registrar logs de lances e alterações de status para rastreabilidade.
-
Paginação: sempre que listar grandes volumes, usar
LIMIT OFFSETpara reduzir carga.
Tire suas dúvidas
Cecília Romani
Especialista em Numismática
Tire suas dúvidas com Cecília Romani sobre este capítulo pelo WhatsApp.
Falar com CecíliaComentários
Área de comentários em breve...

