Arra lenne szükségem hogy ilyesmi területeket tároljak adatbázisban.
Ha valaki megad két értéket (magasság-súly), pl 172 cm-69 kg, akkor az adatbázis visszaadja a D betűt.
Többféle területi eloszlás van, pl itt egy másik vagy egy harmadik,képpel (itt számot kell visszaadni):
Mindezt úgy kellene tárolni, hogy független legyen az adatbázis motortól, lehet az MySQL, PostgreSQL vagy Oracle. Bármilyen ötletet szivesen veszek.
- 1763 megtekintés
Hozzászólások
Lehet, hogy elsiklok valami fölött, de elsőre 3 mezős rekordokat csinálnék. Első példa alapján pld:
(magasság) (súly) (visszaadandó érték)
ezekből lenne egy rakás, kulcs lenne a magasság+súly, és erre lehetne kereseni és ha van találat, akkor a harmadik mező a kérdéses érték.Ez elég egyszerű, hogy bármilyen motorra megoldható legyen.
Vagy rohadtul félreértettem és nem ilyen egyszerű a dolog vagy nem ez a kérdés... akkor sorry!
- A hozzászóláshoz be kell jelentkezni
Elsiklasz afölött hogy mind a magasság, mind a súly lehet -tól-ig. Ha csak egész értékeket engedünk meg, akkor az első táblázat 147 - 183 cm-ig, valamint 43 kg - 91 kg-ig terjed. Mindez (183-147) * (91-43) = 1748 különböző magasság-súly pár lehetőség van. Ez ugyan nem sok és mivel nincs mindegyik pár értelmezve (pl 147 cm - 43 kg-hoz nem tartozik érték), ez még kevesebb rekordot jelent. Mégis, bízom benne hogy van ettől elegánsabb megoldás.
- A hozzászóláshoz be kell jelentkezni
és? a fenti táblázatokat gyönyörűen le lehet tárolni egy 2 dimenziós tömbben, vagy két 1 dimenziósban és egy 2 dimenziósban.
- A hozzászóláshoz be kell jelentkezni
Erre két megoldást tudnék
1. az adatbázis kibővül
(min magasság)(max magasság)(min súly)(max súly)(érték)
és arra keresel ahol az imput súly és imput magasság a két határérték között van. valami ilyesmi (szintakszis passz :) )
select ertek from table where magassag>=min_magas and magassag<=max_magas and suly>=min_suly and suly<=max_suly
Lehet, hogy favágó módszernek tűnik, de egyszerű mint a faék :) arra kell ügyelni, hogy jól töltse ki az ember az adatbázis, ne legyen átfedés a határok között.
2. megoldás :) - adatbázis marad 3 mezős, és a lekérdezést "finomítod". Ez akár lehet elegánsabb megoldás is, bár inkább kihívás :), ha van felesleges kapacitásod, hogy az egyszerűbb megoldás helyett ezt valósítsd meg, akkor nosza. Korán van még :), de pld. egy ötlet rá:
kikeresed az inputokhoz legközelebbi (nem nagyobb, de akár egyenlő) két értéket (súly és magasság), ami egy rekordon belül szerepel és annak az érték mezője lesz a keresendő érték. Még nem agyaltam, hogy van-e erre frappásabb megoldás.
Elegánsabb megoldást szerintem csak akkor lehetne találni, ha lenne valami rendszer vagy szabály a táblázatokban, de sztem ahány ruha annyi féle mérettáblázat van, így abból sem lehet kiindulni, hogy minden táblázat pld. 11*12 méretű. Meg gondolom a területek is teljesen random formájúak.
- A hozzászóláshoz be kell jelentkezni
Viszont mind a kettőt egyszerűen lehet (lefelé) kerekíteni lekérdezés előtt, például a fenti képnél…
- A hozzászóláshoz be kell jelentkezni