SQL-ben ezt meg lehet oldani?
Még csak most tanulom.
Tehát van egy tábla, benne ételekkel. Két oszlop a fontos itt a kérdésnél: a leírás és az összetevők. A leírás oszlopban szerepel egy hosszabb leírás az ételről, míg az összetevők oszlopban vesszővel elválasztva hogy milyen összetevők vannak az ételben.
Csináltam egy olyan update-t, hogy ha például a leírás tartalmazza az 'alma' szót akkor az összetevők oszlopba írja be hogy 'alma'.
És itt jön a kérdés, meg-e lehet azt oldani, hogy ha a leírás tartalmazza mondjuk a 'körte' szót akkor azt fűzze hozzá az összetevők oszlophoz? Tehát ilyen legyen a végeredmény: 'alma, körte'





Meg, csak alapvetően adatbázis tervezési hiba így tárolni az összetevőket, mert nem felel meg az első normálformának.





Ha SQL oldalon szeretnéd megoldani:





Köszi az eddigieket, máshogy közelítettem meg:
Ha csak néhány összetevő kell, mindegyiknek csináltam külön oszlopot, amit tartalmaz annak igen amit meg nem annak nem az értéke.





Nem kell külön oszlop, hanem készítesz egy kapcsolótáblát, amiben hozzárendeled az ételhez az összetevőket.
Tehát pl. így nézne ki egy példa adatbázis:
ÉTELEK(étel)
| almás pite |
| cseresznyés joghurt |
ALAPANYAGOK(anyag, súly_gramm)
| alma | 1000 |
| cseresznye | 800 |
| liszt | 50000 |
| natur joghurt | 9000 |
| cukor | 100000 |
ÖSSZETEVŐK(ÉTELEK, ALAPANYAGOK)
| almás pite | alma |
| almás pite | liszt |
| cseresznyés joghurt | cseresznye |
| cseresznyés joghurt | natur joghurt |
| cseresznyés joghurt | cukor |
A leírás lehet, hogy nem precíz, de talán érthető a lényeg. Az ÖSSZETEVŐK táblában csak hivatkozások vannak az ÉTELEK és ALAPANYAGOK táblára, így akármennyi összetevőt hozzá lehet rendelni az ételekhez és nincsenek duplikációk (redundáns adatok) az adatbázisban. Erről szól egyébként az #1 linkje és a normálformák, érdemes belemélyedni, ha komolyan gondolod a tervezést.





Igazatok van, de a kérdező most tanulja, picit kíméletesebben.
Kérdező, azt kell elsőre megérteni, hogy az adatbázis nem Excel-táblázat, más szemlélettel közelítünk hozzá.





További kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!