sql >> Databáze >  >> RDS >> Mysql

Počítat záznam vyhledávacích kritérií na základě vyhledávání provedeného uživatelem (MYSQL PHP)

Zkoušel jsem to udělat dříve a může to být velmi pomalé v závislosti na tom, kolik filtrů povolíte a kolik hotelů uvádíte, nemluvě o tom, jak se vypořádáte s duplicitními hotely.

Nakonec však budete mít velmi málo možností filtrování

  • Typ vlastnosti:normalizujte jej v samostatné tabulce
  • Ložnice:ukládejte to jako maličké nebo malé (buď nepodepsané), nedovedu si představit, že existují nemovitosti s více než 255 ložnicemi a rozhodně ne nad 65 000
  • Umístění:normalizujte je v samostatné tabulce, ideálně ve stromovém formátu, aby byly zaznamenány vztahy
  • Hodnocení hvězdičkami:toto může být uloženo jako malá část bez znaménka

Nyní je váš problém v tom, že pokud někdo použije filtr pro 3 ložnice a vyšší, stále byste měli dostávat hodnoty pro 2 ložnice, 1 ložnice, protože změna filtru zpět na to přinese výsledky.

Na konci dne jsem to řešil pomocí velmi velké paměťové tabulky, nějaké logiky pro vytváření příkazů WHERE a JOIN a individuálního dotazu počítajícího záznamy v rámci nastaveného seskupení. Bylo to však kvůli tomu, že dělali podobné výsledky vyhledávání uživatelů o prázdninách, a jako taková byla data považována za zcela přechodná. Pro vaše účely bude pravděpodobně přijatelná mnohem menší tabulka paměti, nicméně princip je podobný.



  1. Mohu nastavit výchozí schéma pro v rámci uložené procedury?

  2. mysqld:Nelze změnit dir na data. Server se nespustí

  3. Je Oracle SYS_GUID() UUID RFC 4122 kompatibilní?

  4. Proč odstraňovat sadu init_command django DATABASE_OPTIONS engine=INNODB po vytvoření tabulky?