Kezdőoldal » Számítástechnika » Weblapkészítés » Mire jók az idegen kulcsok az...

Mire jók az idegen kulcsok az adatbázisban?

Figyelt kérdés
Van egy MYSQL adatbázisom, és az egyik tábla egyik mezője idegen kulcs. Ennek mi a szerepe? Annyi, hogy nem bírok létrehozni új rekordot olyan idegen kulcs értékkel, ami nem létezik a másik táblában?
2011. aug. 6. 11:05
 1/7 anonim ***** válasza:

A Boyle-Codd féle normálformában a táblák közti kapcsolatok egyik lehetséges módszere az idegen kulcs.


[link]

2011. aug. 6. 11:33
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:

Ez így nekem tényleg nem mond sokat.

Az a baj, hogy elég gyenge vagyok angolból. és nem találtam jó anyagot, ami ezt elmagyarázza.


igazából azt nem értem, miért jó ilyeneket csinálni, miért jó táblákat összekapcsolni.

2011. aug. 6. 12:29
 3/7 anonim ***** válasza:

Ja, értem mi a gondod.


Egy adatbázis rekordokból (bejegyzés, adatsor) és a közöttük levő kapcsolatokból áll.


Például egy könyvtár adatbázisa: vannak a Kölcsönzők, és vannak a Könyvek.


A Kölcsönzők emberek, vannak adataik, pl kor, nem, név, stb.


A Könyveknek is vannak, pl. cím, szerző, Cutter-szám, stb.


Ezeket össze kell kapcsolni egy 3. táblában, amit nevezzünk Kölcsönzés-nek. Ebben benne van, hogy ki, mit, mikor vett ki. Itt jut szerephez az azonosító, pl idegen kulcs: minden Kölcsönzőnek és Könyvnek van egy-egy azonosítója, ami egyedi. Ezek benne vannak egymás mellett a Kölcsönzés táblában, aszerint, hogy ki mit vett ki.


Az idegen kulcs egy speciális dolog a táblák összekapcsolására, itt GYK-n nehéz elmagyarázni, én 1 évig tanultam csak az alapokat.

2011. aug. 6. 12:48
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:

áh


szóval legyen


USER:

id

name


AUTO:

id

user_id

name


Most ezt a két táblát össze tudom kapcsolni úgy, hogy az user_id az ideigen kulcs, ami utal a másik tábla elsődleges kulcsára az id-re.


most le szeretném kérdezni ,hogy az autóknak ki a tulajdonosa:


select a.id, a.name, u.name from AUTO as a, USER as u

where a.user_id = u.id


és itt a gond, ugye, mert ilyet bármilyen két táblára írhatnék, még ha nem is jelölöm a kapcsolatokat. vagy nem?

2011. aug. 6. 12:55
 5/7 anonim ***** válasza:
igen
2011. aug. 6. 14:10
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:
100%
szóval igen de azáltal, hogy idegen kulcsot használsz az adatbázisban így az adatbzis tudtára adod, hogy az a mező egy idegen kulcs. Így például nem engedi véletlenül törölni a kapcsolóhoz tartozó rekordot addig amíg van rá mutató rekord, szóval nem járhatsz úgy, hogy szeméttel vagy hibás rekordokkal maradsz teleszórva. Pluszba csak a megfelelő értékeket engedi felvenni és tudtommal még indexeli is őket.
2011. aug. 6. 14:12
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
áh, pont ezekre voltam kíváncsi, köszi!
2011. aug. 6. 14:23

Kapcsolódó 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!