258 PHP i MySQL dla każdego
258 PHP i MySQL dla każdego
Osobald |
Imię |
Nazwisko |
Data urodzenia |
1 |
Jan |
Kowalski |
1970-01-01 |
2 |
Jan |
Kowalski |
1970-01-01 |
3 |
Andrzej |
Nowak |
1971-02-02 |
4 |
Anna |
Jabłońska |
1972-03-03 |
Rysunek 9.19.
Utworzenie dodatkowej kolumny pozwala jednoznacznie zidentyfikować każdy rekord
wiersz tabeli, a te dwie kolumny tego warunku nie spełniają. O tym, która kolumna (lub kolumny) będzie kluczem, decyduje programista tworzący bazę. Klucze pozwalają zaś na budowanie relacji między tabelami.
Wiemy już, że dane w bazie są przechowywane w tabelach. Logika podpowiada, że takie tabele muszą być ze sobą w jakiś sposób powiązane, inaczej nie odniesiemy z nich większego pożytku. Jeśli prowadzimy np. sklep internetowy, a w bazie znajdują się tabele zawierające dane o klientach i o zamówieniach przez nich dokonanych, musi istnieć takie powiązanie, które jednoznacznie przypisze zamówienie klientowi. Oznacza to, że pomiędzy tymi tabelami musi istnieć tzw. relacja. W praktyce takie powiązanie zostanie zrealizowane przez wprowadzenie do jednej z tabel tak zwanego klucza obcego. Schematycznie sytuacja taka została przedstawiona na rysunku 9.20.
Rysunek 9.20.
Umieszczenie klucza obcego w tabeli opisującej zamówienia
Mamy tu dwie tabele, jedną opisującą klientów i drugą opisującą zamówienia. Obie tabele mają klucze podstawowe; w pierwszej jest to kolumna KI ientld, w drugiej — kolumna Zamówienield. W tabeli opisującej zamówienia znajduje się również klucz obcy KI ientld, czyli nic innego, jak klucz podstawowy z tabeli opisującej klientów. Dzięki takiej strukturze wiemy, że zamówienie o identyfikatorze 1 zostało złożone przez Jana Kowalskiego 1 stycznia 2005 roku, a np. zamówienie o numerze 3 — 3 marca 2005 roku przez Annę Jabłońską. A zatem powtórzmy raz jeszcze: KI ientld jest kluczem podstawowym w tabeli opisującej klientów, ale kluczem obcym w tabeli opisującej zamówienia. W ten sposób powstała pomiędzy tymi dwiema tabelami relacja.
W teorii projektowania relacyjnych baz danych wyróżnia się trzy podstawowe typy relacji: