64412 skanuj0250 (3)

64412 skanuj0250 (3)



Rozdział 9. ♦ Podstawy MySQL 263

ulicy, będziemy mieli kłopot4. Adres najlepiej więc rozbić na poszczególne pola typu: miasto, ulica, numer domu, kod, co dodatkowo ułatwi wprowadzanie ewentualnych modyfikacji.

Poważnym błędem jest również umieszczenie w jednym polu wielu odwołań do innej tabeli. Załóżmy np., że chcemy zapisywać w bazie informacje o wypożyczeniach książek z biblioteki i przygotowaliśmy w tym celu tabelę Wypożyczenia o strukturze przedstawionej na rysunku 9.28. Zawiera ona pole KI i ent Id, które jest kluczem obcym pochodzącym z tabeli identyfikującej klientów, pole Data, w którym zapisywana będą daty wypożyczeń, i pole Książka Id, które jest kluczem obcym pochodzącym z tabeli zawierającej dane książek.

Wypożyczenia Klientld Książka Id Data_


Rysunek 9.28.

Struktura tabeli

Wypożyczenia

Jeśli zatem jeden klient za jednym razem wypożyczy kilka książek, a my ten fakt w bazie odnotujemy w sposób przedstawiony na rysunku 9.29, popełnimy oczywiście błąd. Co prawda w tabeli znajdują się wszelkie niezbędne informacje, i wiemy np. że klient o identyfikatorze 1 wypożyczył 05 maja 2005 roku trzy książki, o identyfikatorach 1, 18 i 24, ale bardzo trudno będzie nam już uzyskać jakiekolwiek informacje statystyczne. Jak bowiem sprawdzić, ile razy w danym okresie była wypożyczana dana książka, albo jakiego typu książki najchętniej wypożycza klient o identyfikatorze 4?

Klientld

Ksiąźkald

Data

1

6

1,18, 24 2

2005-05-05

2005-05-05

4

2, 14

2005-06-01


Rysunek 9.29.

Przykładowe dane w tabeli Wypożyczenia

Wydobycie tego typu informacji wymagałoby analizy zawartości kolumny Książka Id, a tym samym sporo dodatkowej pracy od programisty. Tymczasem prawidłowe zapisanie danych w tabeli Wypożyczenia spowoduje, że uzyskiwanie wszelkich informacji dotyczących wypożyczeń będzie możliwe jedynie przy użyciu typowych zapytań do bazy (o czym będzie mowa w kolejnym rozdziale). Prawidłowe zapisanie oznacza w tym wypadku, że dane dotyczące wypożyczenia każdej książki muszą być zapisane w osobnych wierszach tabeli, czyli każde wypożyczenie to jeden wiersz. W przypadku danych z rysunku 9.29 prawidłowa postać tabeli wypożyczenia wyglądałaby tak, jak na rysunku 9.30.

Puste pola

Należy unikać pozostawiania w tabelach pustych pól, czyli pól niezawierających danych. W niektórych sytuacjach istnienie takich pól może być co prawda konieczne, jeśli jednak miałoby się pojawić ich w jakiejś tabeli bardzo dużo, należy raczej zastanowić

Choć oczywiście odpowiednio skonstruowane zapytanie (czasami wspomagane przetwarzaniem danych po stronie klienta) poradzi sobie z takim problemem.


Wyszukiwarka

Podobne podstrony:
skanuj0232 (3) Rozdział 9. ♦ Podstawy MySQL 245 W przypadku wyboru instalacji standardowej lub pełne
skanuj0244 (3) Rozdział 9. ♦ Podstawy MySQL 257 Pomiędzy tymi tabelami, a ściślej danymi w tych tabe
skanuj0252 (3) Rozdział 9. ♦ Podstawy MySQL 265 „Klucze”. Najczęściej wprowadzamy w tym celu do tabe

więcej podobnych podstron