sql >> Databasteknik >  >> RDS >> Mysql

Räkna sökkriteriepost baserat på sökning gjord av användare (MYSQL PHP)

Jag har försökt göra det här förut, och det kan bli väldigt långsamt beroende på hur många filter du tillåter och hur många hotell du listar, för att inte tala om hur du hanterar dubbletter av hotell.

I slutändan kommer du dock att ha väldigt få filteralternativ

  • Egenskapstyp :normalisera detta i en separat tabell
  • Sovrum :lagra detta som en liten eller liten (antingen osignerad), kan inte föreställa mig att det finns fastigheter över 255 sovrum, och definitivt inte över 65k
  • Plats :normalisera detta i en separat tabell, helst i ett trädformat för att säkerställa att relationer noteras
  • Stjärnbetyg :detta kan lagras som en liten osignerad int

Nu är ditt problem här att om någon använder ett filter för 3 sovrum och uppåt, bör du fortfarande få värden för 2 sovrum, 1 sovrum, eftersom att byta tillbaka filtret till det kommer att ge resultat.

I slutet av dagen tog jag upp detta med hjälp av en mycket stor minnestabell, lite logik för att bygga WHERE- och JOIN-satser, och en individuell fråga som räknar upp poster inom en uppsättningsgrupp. Detta var dock för att göra liknande sökresultat för användarnas semester, och som sådan ansågs informationen vara helt övergående. För dina ändamål är en mycket mindre minnestabell sannolikt acceptabel, men principen är liknande.



  1. Kan jag använda MySQL LOAD XML LOCAL INFILE om mina rader inte har ett "namn"?

  2. Jämför RDS vs EC2 för att hantera MySQL eller MariaDB på AWS

  3. Postgresql-tabeller finns, men att få relation finns inte när man frågar

  4. Hur man installerar och säkrar MariaDB 10 i CentOS 7