Efetue pesquisa dinâmica com duas entradas de informações e filtre os registros utilizando o operador LIKE
Desenvolva o filtro what-where e aplique em seu sistema fazendo pesquisa por ocorrência (operador LIKE) e mantenha a integridade das suas informações
Bora criar um filtro onde a pessoa possa escrever o que ela quer encontrar em determinada cidade? Tipo, você acessa um guia da sua região e eu quer saber sobre os restaurantes em determinada cidade...
Daí você vai no filtro e digita o que você quer (restaurante, bar, sorveteria, casa de show...) e a cidade que você está, ou estará indo viajar em breve e tem uma listagem completa? Show né?
Salve salve, Gustavo Web aqui e a aula do UpInside Play de hoje pede para criarmos um filtro what-where!
Como sempre, pra agilizar o desenvolvimento o já deixei um protótipo pronto para que possamos simplesmente codificar e assim não precisamos ficar investindo tempo para montar a interface :)
Repositórios
O repositório inicial do projeto, é o que você vai usar como base para seguir na aula comigo. Já está no github e se você clicar aqui, eu te levo pra lá agora :)
O dump do banco de dados está na raiz do repositório.
O projeto final, pode ser consultado aqui.
Processos
Não que seja segredo, mas há algumas particularidades que devem ser levadas em consideração para que quem esteja pesquisando, possa encontrar os registros de maneira mais coesa.
Exemplo simples, se você permitir que no cadastro dos estabelecimentos a pessoa digite a cidade, provavelmente você terá um grande furo de informações... Explico:
Pense que as empresas de Florianópolis podem cadastrar a cidade como: Floripa, Florianópolis, Florianopolis, Fpolis, Filanópolis (por causa do trânsito hehe). Esses são alguns nomes comuns que vemos por aqui!
Portanto, o ideal é que você tenha uma base de cidades cadastradas no seu sistema, e quando for incluir um novo estabelecimento, seja selecionado uma nova cidade dentre as que já estão previamente parametrizadas.
Assim você consegue evitar furo de informações e manter seus dados integros.
Como "what", utilizamos um campo multivalorado somente para exemplificar como pode funcionar o recurso no sistema, mas o ideal também é que você tenha todas as tags já parametrizadas no seu sistema e no momento do cadastro, seja permitido o cadastro de várias tags para um único estabelecimento!
Nesse caso, também seria legal separar numa outra tabela os relacionamentos, tendo em vista que campo multivalorado não é uma boa prática na normalização do banco de dados.
Feedback
Quero saber o que você achou dessa aula e se você tem a intenção de adaptar para seu projeto :) Me conta aqui abaixo nos comentários!