Kezdőoldal » Számítástechnika » Weblapkészítés » Webapp MySQL adatbázissal?...

Webapp MySQL adatbázissal? Hogy a legegyszerűbb ezt megoldani?

Figyelt kérdés

Adatbázis MySQL-ben személyekről. Egy személy kapcsolható 1 vagy több iskolához. Ahova jár(t).


Viszont ha egy személy több iskolába is járhat/járhatott, akkor egy adott iskolának lehet több diákja is.

Tehát akkor ez egy many to many kapcsolat igaz? Vagy nagyon túlgondolom?


Ugye mivel many to many nem lehet a kapcsolat, van egy link table ami tartalmazza a másik kettő (személyek, iskolák) ID-jait, és így össze tudom kapcsolni a személyt a sulikkal.


Ez így eddig oké is, SQL-ben is le tudom hívni, hogy adott suliba kik jártak, a 2 táblázat segítségével.


Viszont ha van egy egyszerű form-om amit html/css-el dobok össze, hogy írom be, hogy ki melyik suliba járt?

A személyek táblázatba oké, az megvan. De a link table-be hogyan kötöm össze a személyt 1 vagy több sulival?

Hisz nem elég kiválasztani a sulit a drop down list-ből, mert be kell írni, hogy melyik id-t melyikkel kötöm össze a harmadik táblázatban, de ezt a front end-nél nem látja a user, hogy milyen ID-t kap elmentés után vajon az elmentett személy, hogy aztán azt kösse össze egy másik formban a sulival..


Ötletek?



2021. nov. 5. 10:50
1 2 3
 1/22 anonim ***** válasza:

Kb:

SELECT * FROM schools_students

JOIN students ON schools_students.student_id=students.id

JOIN schools ON schools_students.school_id=schools.id

2021. nov. 5. 11:30
Hasznos számodra ez a válasz?
 2/22 anonim ***** válasza:
Szóval van egy közös táblád a másikakból az id-k szerepelnek benne csak, azaz az iskola és a tanuló egymáshoz rendelés ott van és ehhez a táblához kapcsolod hozzá join-okkal a másik két törzs táblát..
2021. nov. 5. 11:33
Hasznos számodra ez a válasz?
 3/22 anonim ***** válasza:
A frontenden a user csak azt választja ki, hogy melyik suli(k)ba járt. Backenden megkapod a suli ID-ját és a user ID-t meg a session-ből tudod. Az alapján be tudod szúrni a kapcsolótáblába. Vagy mi okoz problémát?
2021. nov. 5. 11:47
Hasznos számodra ez a válasz?
 4/22 anonim ***** válasza:

#1-es vagyok, de valószínű nem teljesen értettem a kérdést, amit írtam az arra jó, hogy lekérdezze az összes személyt és iskolát, de persze, ha eleve megvan a személy, akkor igazából az id alapján nem kell a tanuló rész, csak a link és a suli tábla.

Kiírni meg vagy két listát csinálsz, az egyikbe berakod, hogy hova jár, a másikba meg a többit és akkor a kettő közötti átpakolásra csinálsz gombokat.

2021. nov. 5. 11:59
Hasznos számodra ez a válasz?
 5/22 A kérdező kommentje:

Nos igen, lerövidítve annyit szeretnék, hogy a felhasználó lát egy formot, ott beírja a diák nevét, meg kiválaszt a drop down-ból egy iskolát és beküldi az adatbázisba.


Ami egyszerű lenne, csak ugye az számomra megbonyolítja a helyzetet, hogy many to many a kapcsolat ezért van egy harmadik táblázatom a másik két táblázat primary kulcsaival.


Csak ott akadtam meg, hogy backend-be hogy csinálom azt, hogy veszi az épp hozzáadott új felhasználó id-jét meg a kiválasztott iskola nevét (amit aztán id-ként felismerve kezel), és ezeket az adatokat jó helyre beteszi a harmadik táblázatba ami összeköti ezt a kettőt, amint megnyomja a felhasználó a mentés gombot frontend-en.

2021. nov. 5. 12:16
 6/22 anonim ***** válasza:

Hát a kapcsolati táblád az id, shcool_id, student_id

id increment primary key

A másik kettő meg unique így az sql dob egy hibát, ha már 1x szereplet volna biztos ami biztos.

DE a formon meg eleve olyan sulikat kell listázni, amibe nincs benne az student,csak ugye ezt addig nem tudod listázni, amíg nincs meg az id_je.

Ezt pedig leginkább ajaxal tudnád megcsinálni egy formon belül, de ez természetéből adódóan szerver oldali is.

2021. nov. 5. 12:26
Hasznos számodra ez a válasz?
 7/22 anonim ***** válasza:

Jól értem, hogy az a gondod, hogy egy épp frissen hozzáadott user ID-je kellene? Erre több megoldás is létezik.


1. Használhatod a beépített függvényt az insert után:

SELECT LAST_INSERT_ID();

2. Használhatsz UUID azonosítókat az auto increment helyett és a backenden insert előtt generálod az UUID-t, amit utána már be tudsz szúrni a kapcsolótáblába

3. Használhatsz ORM rendszert, ami az egészet elintézi neked

2021. nov. 5. 12:46
Hasznos számodra ez a válasz?
 8/22 A kérdező kommentje:

#7 Óh, így már picit érthetőbb a helyzet, most ötletet adtál. Ezt ki fogom próbálni mindenképp.


Tehát tulajdonképpen annyi a történet, hogy a send gomb nyomására minden amit beírtunk a form-ba, azt beküldi az adatbázisba, de egyúttal meg a legutóbb hozzáadott ID-t meg a kapcsoló táblába küldöm be, azzal az ID-vel amelyik sulinak az ID-jét szintén kiválasztotta a felhasználó a diák adatokkal együtt.

Remélem működni fog, vagy legalábbis nekem sikerül megoldani.


Arra miképp keressek rá a neten, hogy ha azt szeretném hogy a felhasználó az iskola nevét lássa a drop down list-ből, de ez ID formájában kerüljön be az összekapcsoló táblázatba?

Gondolom nem insert where lesz az?

2021. nov. 5. 13:15
 9/22 anonim ***** válasza:
Jól értem, hogy még nem derült ki, miben csinálod a logikát? PHP? Vagy node?
2021. nov. 5. 13:54
Hasznos számodra ez a válasz?
 10/22 A kérdező kommentje:

#9 Igazából már minden megvan, az adatbázis és a frontend is javarészt, egyedül csak ez a rész volt vissza, ez az Insert rész.

Egyébként PHP.

2021. nov. 5. 14:03
1 2 3

További kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!