Több-több kapcsolat megvalósítása, és lekérdezése
Sziasztok!
Amit szeretnék megvalósítani, egy könyvtári nyilvántartás webes felülettel, ami nyilvántartja a szerzőket (vezetéknév, keresztnév, nemzetiség, születési év, rövid életrajz), illetve a
könyvek adatait (cím, szerző(k), kiadó, kiadás éve, terjedelem, témakód, rövid leírás, nyelv). Ugye egy író több könyvet is írhatott, és egy könyvnek egy vagy több szerzője is lehet.
Én ezt úgy gondoltam, hogy csinálok 3 táblát (konyv, konyv_szerzo, szerzo):
konyv(id, cim, kiado, kiadas, terj, tema, leiras)
szerzo(id, veznek, kenev, nemz, szuletes, eletrajz)
a kapcsoló tábla pedig:
konyv_szerzo(id, konyvid, szerzoid)
Szerintetek ez így megfelelő? Van egyszerűbb megoldás?
Második kérdésem pedig az lenne, hogy ha ki szeretném listázni az összes könyvet táblázatos formában. [szerző(k). cím, kiadás alapján, minden könyv új sorba], hogy tehetem meg? Natural joinnal, tudnátok egy konkrét select parancsot mondani?
A php-s kiíratás megy, csak nem tudom milyen mysql paranccsal lehetne ezt elérni.
Előre is köszönöm!
■ Amit szeretnék megvalósítani, egy könyvtári nyilvántartás webes felülettel, ami nyilvántartja a szerzőket (vezetéknév, keresztnév, nemzetiség, születési év, rövid életrajz), illetve a
könyvek adatait (cím, szerző(k), kiadó, kiadás éve, terjedelem, témakód, rövid leírás, nyelv). Ugye egy író több könyvet is írhatott, és egy könyvnek egy vagy több szerzője is lehet.
Én ezt úgy gondoltam, hogy csinálok 3 táblát (konyv, konyv_szerzo, szerzo):
konyv(id, cim, kiado, kiadas, terj, tema, leiras)
szerzo(id, veznek, kenev, nemz, szuletes, eletrajz)
a kapcsoló tábla pedig:
konyv_szerzo(id, konyvid, szerzoid)
Szerintetek ez így megfelelő? Van egyszerűbb megoldás?
Második kérdésem pedig az lenne, hogy ha ki szeretném listázni az összes könyvet táblázatos formában. [szerző(k). cím, kiadás alapján, minden könyv új sorba], hogy tehetem meg? Natural joinnal, tudnátok egy konkrét select parancsot mondani?
A php-s kiíratás megy, csak nem tudom milyen mysql paranccsal lehetne ezt elérni.
Előre is köszönöm!
Még egy kérdésem lenne, ha
Mert ha pl kevés adat lenne és nem while ciklussal íratnám ki. akkor létrehozhatnék mindegyikhez egy függvényt, de így nem tudom.
Így iratom ki a szerző nélkül:
html táblázat deklaráció, mysql kapcsolat felépítése phpban...
Sokmindentől függ, hogyan
Ha az idők folyamán meghízik az adatbázis, akkor érdemes lesz a szerzők adatait a könyvek táblájába is bemásolni, így nem lesz szükség a JOIN-ra.
Köszönöm gyors válaszod! Az
Az az igazság, hogy most tanulgatom az adatbázis kezelést, ez pedig egy szorgalmi szerű dolog.
Az adatbázis nem fog nagyra hízni, max 20-30 könyv rekord lesz benne.
Úgyhogy mindenképp a kapcsoló-táblás dologgal kéne megvalósítani.
A php-s soronkénti törlést már megoldottam, egy táblára (a könyv-re).
Azt még mindig nem tudom, hogyan tudnám kilistázni a táblázatomban a könyvekhez kapcsolódó szerzőket is a kapcsoló táblámon "keresztül".
Halmazelméleti szinten mennek ezek a join-ok, de most nem tudom mit/hogyan kéne használnom.
Két táblára még megy. pl.:
Azt még mindig nem tudom,
A JOIN-okra pedig keress rá a neten, van fenn ezer anyag a témában.
select konyv.*, szerzo.* from
Minden könyv annyiszor fog szerepelni a listádban, ahány szerzője van. Érdemes lehet ezért a tartalmat csoportosítani szerver oldali kóddal, megjelenítés előtt, vagy például MySQL esetén
GROUP_CONCAT
-tal.