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.
Comentários
Área de comentários em breve...

