Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Contar registro de critérios de pesquisa com base na pesquisa feita pelo usuário (MYSQL PHP)


Eu tentei fazer isso antes, e pode ficar muito lento dependendo de quantos filtros você permite e quantos hotéis você lista, sem mencionar como você lida com hotéis duplicados.

Em última análise, você terá muito poucas opções de filtro
  • Tipo de propriedade:normalize isso em uma tabela separada
  • Quartos :armazene isso como um tinyint ou smallint (sem assinatura), não consigo imaginar que existam propriedades acima de 255 quartos e definitivamente não acima de 65k
  • Localização:normalize isso em uma tabela separada, de preferência em formato de árvore para garantir que os relacionamentos sejam observados
  • Classificação por estrelas:isso pode ser armazenado como um tinyint não assinado

Agora, seu problema aqui é que, se alguém aplicar um filtro para 3 quartos para cima, você ainda deve obter valores para 2 quartos, 1 quarto, pois alterar o filtro de volta para isso produzirá resultados.

No final do dia, abordei isso usando uma tabela de memória muito grande, alguma lógica para construir instruções WHERE e JOIN e uma consulta individual contando registros dentro de um agrupamento definido. No entanto, isso foi feito para fazer resultados semelhantes aos da pesquisa de feriados dos usuários e, como tal, os dados foram considerados totalmente transitórios. Para seus propósitos, uma tabela de memória muito menor provavelmente será aceitável, mas o princípio é semelhante.