nem szabályos területek ábrázolása adatbázis motor függetlenül

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.

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!

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.

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.