nocmatic / prevozi

Pri predmetu Osnove podatkovnih baz bova izdelala aplikacijo, na katero bodo lahko uporabniki dodali prevoze, ki jih ponujajo, ocenili uporabnika,
MIT License
0 stars 1 forks source link

Vprašanje glede iskalnika #6

Open PavesicL opened 7 years ago

PavesicL commented 7 years ago

Želim omogočiti iskanje npr. po krajih, ki so v bazi. Ali je hitreje, če aplikacija od baze zahteva celoten seznam krajev, po katerem naj išče aplikacija, ali je bolj smotrno, če se uporabnikov request posreduje bazi, kjer se nato poišče pravi kraj (znotraj seznama v bazi)?

jaanos commented 7 years ago

Vsekakor ni smiselno prenesti celotnega seznama. Za iskanje po nizih z vzorci lahko uporabita operator LIKE, ki išče po vzorcih - v vzorcu _ predstavlja poljuben znak, % pa poljuben niz. Tako bi lahko naredila poizvedbo, kot npr.

SELECT * FROM kraj WHERE ime LIKE '%Lju%'

To bi poiskalo vse kraje, v katerih se pojavi podniz Lju. PostgreSQL pozna tudi operator ILIKE, ki deluje enako, le da ne razlikuje med velikimi in malimi črkami. V dokumentaciji imata opisane še nekatere druge operatorje.

Če bi se izkazalo, da je tako iskanje prepočasno, lahko uporabita tudi full-text indekse. Nisem prepričan, če bi moral za to bazo še dodatno skonfigurirati - če se odločita za to in naletita na težave, bom pogledal, kako lahko to omogočim.