Archívum - Júl 5, 2012 - Fórum téma
db tervezés: sok feltétel, sok adat, lapozás, szűrés és a helyes módszerek
Adott pl. egy http://hasznaltauto.hu mint példa oldal, ahol milliónyi feltétel alapján lehet keresni, szűrni.
Engem olyan db szerkezetre való ajánlások és módszerek érdekelnének (mysql), amellyel egy ilyen komoly kereső is megvalósítható és nem utolsó sorban hatékonyan, gyorsan működtethető.
Például: egy autó adatainak tárolásánál:
pl. egy autóhoz, különböző (több "szintű") bővíthető számú, egyedi tulajdonság lesz definiálva:
fényezés/metálfény,
fényezés/kék szín,
papírok/érvényes forgalmi,
kiegészítők/ablakemelő,
klíma/automatikus/2 zónás
váltó/automatikus/4 sebességes,
állapot/normál/jó állapot
állapot/normál/újszerű állapot
stb.
Kb. ez lenne a db szerkezet ami elsőre beugrik:
"auto" tábla:
auto_id, nev,..
tulajdonsagok tábla:
tul_id, metalfeny..
auto_tulajdonsagai tábla_
auto_id, tul_id...
A keresőnél pedig: az adatbázisból azon autókat kérdezzük le, amelyeknél a tul_id=.. OR
tul_id=.. OR ...
Hogyha nagyon sok feltétellel keresünk (és persze sok táblakapcsolat is van a normálformák miatt), akkor az egy nagyobb adatbázisnál - helyes indexelés mellett is - totál megöli a mysql-t és így az oldalt is.
Pláne ha a találatokat 100-150 db. OR és AND feltétellel tűzdelem tele..
Megaztán ezt minden egyes keresésnél futtassam le? (napi 10.000 látogató nem sok, de ilyen lekérdezésnél már prolbémát okozhat).
És akkor még bonyolítja a dolgot, hogy jó lenne tudni: hogy hány darab találat lesz (pl lapozáshoz).
De ahogy néztem, a fenti oldalt, azt is kiírja - nagyon gyorsan - hogy hány találat várható.
Szóval milyen javaslatok vannak az ilyen összetett keresőt és az adatbázist illetően? (adatbázistervezés szempontból, de ha van egyéb tipp és trükk, az is érdekelne)
Láttam pl. valahol olyat is, hogy az utolsó X lekérdezés részleteit és az eredményét is egy külön táblába ideiglenesen eltárolták.. ez nagyon hekmányolás, vagy ez egy bevett módszer?
Köszi a válaszokat!
■ Engem olyan db szerkezetre való ajánlások és módszerek érdekelnének (mysql), amellyel egy ilyen komoly kereső is megvalósítható és nem utolsó sorban hatékonyan, gyorsan működtethető.
Például: egy autó adatainak tárolásánál:
pl. egy autóhoz, különböző (több "szintű") bővíthető számú, egyedi tulajdonság lesz definiálva:
fényezés/metálfény,
fényezés/kék szín,
papírok/érvényes forgalmi,
kiegészítők/ablakemelő,
klíma/automatikus/2 zónás
váltó/automatikus/4 sebességes,
állapot/normál/jó állapot
állapot/normál/újszerű állapot
stb.
Kb. ez lenne a db szerkezet ami elsőre beugrik:
"auto" tábla:
auto_id, nev,..
tulajdonsagok tábla:
tul_id, metalfeny..
auto_tulajdonsagai tábla_
auto_id, tul_id...
A keresőnél pedig: az adatbázisból azon autókat kérdezzük le, amelyeknél a tul_id=.. OR
tul_id=.. OR ...
Hogyha nagyon sok feltétellel keresünk (és persze sok táblakapcsolat is van a normálformák miatt), akkor az egy nagyobb adatbázisnál - helyes indexelés mellett is - totál megöli a mysql-t és így az oldalt is.
Pláne ha a találatokat 100-150 db. OR és AND feltétellel tűzdelem tele..
Megaztán ezt minden egyes keresésnél futtassam le? (napi 10.000 látogató nem sok, de ilyen lekérdezésnél már prolbémát okozhat).
És akkor még bonyolítja a dolgot, hogy jó lenne tudni: hogy hány darab találat lesz (pl lapozáshoz).
De ahogy néztem, a fenti oldalt, azt is kiírja - nagyon gyorsan - hogy hány találat várható.
Szóval milyen javaslatok vannak az ilyen összetett keresőt és az adatbázist illetően? (adatbázistervezés szempontból, de ha van egyéb tipp és trükk, az is érdekelne)
Láttam pl. valahol olyat is, hogy az utolsó X lekérdezés részleteit és az eredményét is egy külön táblába ideiglenesen eltárolták.. ez nagyon hekmányolás, vagy ez egy bevett módszer?
Köszi a válaszokat!
Wordpress menü probléma
Sziasztok Wordpress szakértők!:)
Van egy olyan menüm,amiben vannak almenük, azaz szülőnek megadtam jelen esetben a Szolgáltatásokat és mikor ráviszed az egeret kijön felsorolva az összes menüpont
A problémám az,hogy mikor rákattintok bármelyik menüpontra, akkor nem a szolgáltatások lesz active, hnem az éppen aktuális menü, azaz azt színezi ki.
Azt kéne megoldanom, hogy mikor az almenüben lévő menüpontra kattintok, akkor a szűlőt színezze ki.
■ Van egy olyan menüm,amiben vannak almenük, azaz szülőnek megadtam jelen esetben a Szolgáltatásokat és mikor ráviszed az egeret kijön felsorolva az összes menüpont
A problémám az,hogy mikor rákattintok bármelyik menüpontra, akkor nem a szolgáltatások lesz active, hnem az éppen aktuális menü, azaz azt színezi ki.
Azt kéne megoldanom, hogy mikor az almenüben lévő menüpontra kattintok, akkor a szűlőt színezze ki.
Megőrjítenek az ékezetek! MB_ és tsai
Sziasztok!
Win7 HUN, UTF8 fájl.
function Test($Msg){
$Result = "";
$ReplFrom = "ő";
$ReplTo = "ö";
for($i=0; $i<mb_strlen($Msg); $i++){
$c = mb_substr($Msg, $i, 1);
echo($c);echo("<br>");
}
}
Test('őű');
Ez szépen kiírja: "őű"
Szeretném cserélni az "ő"-t "ö"-re egyenként, mert mást is akarok vizsgálni rajta...
function Test($Msg){
$Result = "";
$ReplFrom = "ő";
$ReplTo = "ö";
for($i=0; $i<mb_strlen($Msg); $i++){
$c = mb_substr($Msg, $i, 1);
$add = $c;
$h = mb_substr($ReplFrom, 0, 1);
if ($c == $h) {
$add = $ReplTo;
echo("found");
}
$Result = $Result.$add;
}
return $Result;
}
Érdekes módon mindkettőt megtalálja, valamint azonnal krikszkraksz az eredmény...
Egyszerűsítve:
$what = 'ő';
$replto = "ö";
echo($what.$replto);
Így jó.
$what = mb_substr('ő', 0, 1);
$replto = mb_substr("ö", 0, 1);
echo($what.$replto);
Ez nem.
Vagyis a fő kérdések: mit értek félre?
Nekem multibájtos lesz a bemenetem, UTF8 XML-ből veszem majd az eredmény.
De érdekes módon valami elszúródik, amint multibájtos karakterekkel akarok műveleteket csinálni...
Vagy csak az összefűzés ront el valamit?
Minden segítséget köszönök!
Üdv: dd
■ Win7 HUN, UTF8 fájl.
function Test($Msg){
$Result = "";
$ReplFrom = "ő";
$ReplTo = "ö";
for($i=0; $i<mb_strlen($Msg); $i++){
$c = mb_substr($Msg, $i, 1);
echo($c);echo("<br>");
}
}
Test('őű');
Ez szépen kiírja: "őű"
Szeretném cserélni az "ő"-t "ö"-re egyenként, mert mást is akarok vizsgálni rajta...
function Test($Msg){
$Result = "";
$ReplFrom = "ő";
$ReplTo = "ö";
for($i=0; $i<mb_strlen($Msg); $i++){
$c = mb_substr($Msg, $i, 1);
$add = $c;
$h = mb_substr($ReplFrom, 0, 1);
if ($c == $h) {
$add = $ReplTo;
echo("found");
}
$Result = $Result.$add;
}
return $Result;
}
Érdekes módon mindkettőt megtalálja, valamint azonnal krikszkraksz az eredmény...
Egyszerűsítve:
$what = 'ő';
$replto = "ö";
echo($what.$replto);
Így jó.
$what = mb_substr('ő', 0, 1);
$replto = mb_substr("ö", 0, 1);
echo($what.$replto);
Ez nem.
Vagyis a fő kérdések: mit értek félre?
Nekem multibájtos lesz a bemenetem, UTF8 XML-ből veszem majd az eredmény.
De érdekes módon valami elszúródik, amint multibájtos karakterekkel akarok műveleteket csinálni...
Vagy csak az összefűzés ront el valamit?
Minden segítséget köszönök!
Üdv: dd
JS változó érvényessége egy függvényen belül
Sajnos nem tudtam egész pontos címet kitalálni, ami rövid is.
Vegyük ezt a példát:
function fugi(valtozo) {
if(typeof(valtozo)=="undefined") {
valtozo="alapertek";
}
}
A kérdésem:
Ha a függvény "valtozo" nevű változójának alapértéket adok a függvényen belül a példában látható typeof ellenőrzés után, akkor az alapértéket a var kulcsszóval kell megadnom ahhoz, hogy az adott változó csak a függvényen belül legyen érvényes vagy a javascript felismeri, hogy ugyanaz a változó név, mint ami a függvény egyik értéke lehet és var nélkül is csak a függvényen belül lesz érvényes?
Példával: ha azt akarom, hogy a "valtozo" változó csak a függvényen belül legyen érvényes miután alapértéket adok neki akkor kell a var kulcsszó így:
if(typeof(valtozo)=="undefined") {
VAR valtozo="alapertek";
}
Remélem nem bonyolítottam túl ezt az egyszerű kérdést. Köszi.
(Tudom: próbáljam ki. De talán hasznos lehet másoknak is a válasz.)
■ Vegyük ezt a példát:
function fugi(valtozo) {
if(typeof(valtozo)=="undefined") {
valtozo="alapertek";
}
}
A kérdésem:
Ha a függvény "valtozo" nevű változójának alapértéket adok a függvényen belül a példában látható typeof ellenőrzés után, akkor az alapértéket a var kulcsszóval kell megadnom ahhoz, hogy az adott változó csak a függvényen belül legyen érvényes vagy a javascript felismeri, hogy ugyanaz a változó név, mint ami a függvény egyik értéke lehet és var nélkül is csak a függvényen belül lesz érvényes?
Példával: ha azt akarom, hogy a "valtozo" változó csak a függvényen belül legyen érvényes miután alapértéket adok neki akkor kell a var kulcsszó így:
if(typeof(valtozo)=="undefined") {
VAR valtozo="alapertek";
}
Remélem nem bonyolítottam túl ezt az egyszerű kérdést. Köszi.
(Tudom: próbáljam ki. De talán hasznos lehet másoknak is a válasz.)