Zanim przystąpisz do projektowania większej aplikacji bazodanowej warto jest się zapoznać z tymi 3 zasadami. Uchronią one Ciebie przed różnymi przykrymi niespodziankami. Nie będę tutaj pisał nudnym matematyczno-informatycznym językiem o trzech postaciach normalnych baz danych itp. tylko na chłopski rozum wyjaśnię jakich błędów należy unikać, aby się nie obudzić z ręką w nocniku
Zasada #1: Dane w polach powinny przechowywać atomowe informacje
Poniżej znajduje się przykład źle zaprojektowanej tabeli:
Zwróć uwagę, że cały adres jest zapisany w jednym polu (Adres). Efekt jest taki, że bardzo trudno będzie napisać kwerendę, która nam wyłowi wszystkie firmy z Warszawy. Dodatkowo w polu Adres można wpisać adres firmy w kilku różnych formatach (np. ulica i nr budynku, potem kod pocztowy i na końcu miasto albo np. miasto potem kod pocztowy a na końcu ulica i nr budynku). Prowadzi to do bałaganu w bazie danych. Dlatego należy kolumnę adres rozbić na kilka kolumn tak, aby każda z nich zawierała tylko jedną informację. Poniżej przedstawiam poprawnie zaprojektowaną bazę danych.
Rozbijając pole adres na pola: Ulica, NrBudynku, Kod i Miasto łatwiej nam będzie w przyszłości np. stworzyć kwerendę, która wyświetli nam tylko te firmy, które mają swoje siedziby w Warszawie. Dodatkowo można by było rozbić kolumnę Osoba kontaktowa na dwie kolumny: w jednej z nich by było imię osoby kontaktowe a w drugiej nazwisko osoby kontaktowej (dzięki temu np. łatwiej nam będzie wyłowić same kobiety, aby móc im 9 marca złożyć życzenia). Kolejna rzecz, którą można poprawić to rozbić pola NrBudynku na NrBudynku i NrLokalu (jest to przydatne, gdybyśmy chcieli np. policzyć czy są jakieś firmy mające siedzibę w tym samym budynku, ale w różnych lokalach).
Zasada #2: Wartości, które się często powtarzają powinny być zapisane w osobnych tabelach
Poniżej przedstawiam projekt tabeli z powyższego przykładu:
Jak widzimy miasto zostało zapisane jako Tekst, czyli za każdym razem ręcznie trzeba wpisać np. Warszawa. Warto jest stworzyć osobną tabelę o nazwie Miasta i do niej można wpisać miasta, w których są siedziby naszych klientów. Następnie należy za pomocą kreatora odnośników połączyć ze sobą tabele tAdresy i Miasta.
Dlaczego jest to ważne? Otóż jeśli sekretarka będzie wpisywać miasta ręcznie, to za którymś razem może popełnić „literówkę” i zamiast Warszawa wpisze Warsawa (brak literki z). Na skutek tej literówki kwerenda, która ma za zadania wyłowić wszystkie firmy mające siedzibę w Warszawie nie wyświetli nam tej pechowej firmy, gdyż ma ona siedzibę w Warsawie a nie w Warszawie. Dodatkowo inna sekretarka wprowadzająca dane może stosować skróty np. Wawa W-wa itp. zamiast pełnej nazwy.
Zasada #3: Nie zapisuj w bazie danych wartości, które możesz obliczyć
Oto prosty przykład tabeli zawierającej ceny produktów:
Kolumny Cena netto i Cena brutto są w formacie Walutowym.
To rozwiązanie ma kilka wad:
- Osoba wprowadzająca produkty musi dwukrotnie wpisywać cenę (niepotrzebna praca)
- Podczas wpisywania ceny brutto musi na kalkulatorze pomnożyć cenę netto przez 1,23 i ją przepisać. Istnieje ryzyko popełnienia „literówki” np. zamiast 123 zostanie wpisana liczba 124 i cena brutto nie będzie odpowiadała cenie netto.
- Podczas aktualizacji cen ktoś może zaktualizować tylko cenę netto zapominając o cenie brutto (lub odwrotnie).
Prędzej czy później powstaną w bazie danych rozbieżności i ciężko będzie stwierdzić, która cena (netto czy brutto) jest prawidłowa. Dlatego należy tutaj zastosować pole obliczeniowe (pola obliczeniowe w tabelach zostały wprowadzone w wersji 2010). Wtedy unikniemy głupich błędów a dodatkowo zaoszczędzimy sporo czasu na wpisywaniu cen, gdyż program Access automatycznie na podstawie ceny netto obliczy nam cenę brutto.