Tym razem przesyłam na serwer skrypty PHP do pracy z bazą danych postawioną na serwerze MySQL. Krótki opis bazy (najlepiej spojrzeć na diagram):

Baza danych  obsługuje zarówno osobę odpowiadająca za obsługę posiadanych zbiorów książek (domyślnie: bibliotekarz) jak i użytkownika, chcącego korzystać z biblioteki (patrz: klient). Celem osoby wypożyczającej jest odnalezienie interesującego ją egzemplarza oraz sprawdzenie jego dostępności w bazie. Szukający powinien mieć możliwość wyszukania utworu po tytule, autorze lub autorach i wydawnictwie. Dla ułatwienia wyszukiwania zamierzamy bazę podzielić na zbiory, odpowiadające gatunkowi danej literatury. Kolejną istotną rzeczą jest rozróżnienie statusu książki, w którym można wyszczególnić trzy stany: książka jest wypożyczona, książka jest dostępna oraz książka jest zamówiona. Ostatnia opcja różni się od pierwszej istotnym szczegółem. Mianowicie nie ma pewności, czy użytkownik zamówiwszy wcześniej dany tytuł odbierze go z placówki biblioteki. Kolejnym ograniczeniem nałożonym odgórnie na klienta jest limit egzemplarzy możliwych do wypożyczenia na danym koncie. Oznacza to, że osoba nie będzie mogła zamówić kolejnej książki przed oddaniem do biblioteki poprzednich. Aby mieć pełną kontrolę nad terminowością posiadanych zbiorów, wprowadzamy możliwość sprawdzenia przez bibliotekarza terminu wypożyczenia oraz oddania. Tu warto podkreślić, że użytkownicy mają prawo nie tylko zamawiać dostępne utwory, ale także literaturę już wypożyczoną, niejako ustawiając się w kolejce do wypożyczenia. Kolejną istotną sprawą jest rozważenie sytuacji, w której użytkownik nie odda w przewidzianym terminie książki. Baza w takim wypadku musi naliczać kary za każdy dzień przekroczenia terminu. W przypadku przekroczenia określonej sumy pieniędzy konto użytkownika zostaje zablokowane. Oznacza to, że nie ma on możliwości wypożyczenia nowych książek, ale kara za nieoddanie tytuły dalej się powiększa.

Jeśli chodzi o kwestie kompetencji bibliotekarza, ma on pewien nadzór nad cała bazą. Jak już wyżej wspomniałem ma możliwość przedłużenia terminu wypożyczenia tytułu. Nadzoruje on także status książki. Ma możliwość odblokowania konta użytkownika. Kolejną ważną kompetencją bibliotekarza jest zamawianie nowych utworów w księgarni. Bibliotekarz ma spis dostępnych księgarni. Księgarnia ma swój zbiór książek, utworzony na wzór biblioteki. Zna ich miejscowość położenia. Używając formularza zamówieniowego dokonuje zakupu danych tytułów. Formularz będzie zawierał imię, nazwisko i PESEL pracownika, adres placówki, nazwę książki i autora. Domyślnie powinna wyświetlać się jej cena a także liczba i suma należnych pieniędzy zakupionych egzemplarzy. Sygnatura to kod kreskowy, który jednoznacznie dokona weryfikacji książki. 

Opis skryptów PHP:

mysql_check – sprawdza czy jest połączenie

tworz_baze – tworzy bazę bez danych

wypełnianie – tworzy i wypełnia bazę domyślnymi wartościami testowymi zapisanymi w skrypcie

wypełnianie2 – podobnie jak wyżej, ale wartości klucza zwiększają się co i-tą wartość.

z_pliku – wczytuje wszystkie wartości zapisane w plikach txt w folderze dane

widoki – tworzy widoki, ułatwiające przegląd odpowiednich danych

show_tables – wyświetla dane z bazy w tabelkach

usun_baze – usuwa bazę

benchmark – testowanie wydajności zapytania

Ogólnie w paczce zip znajduje się kilka prostych skrypcików typu: stwórz, wypełnij, wyczyść bazę. Na serwerze bloga mam możliwość postawienia instancji MySQL-a i w przyszłości postaram się udostępnić prosty panel PHP do pracy z bazą.

 

Diagram w MS Visio

Skrypty PHP do bazy

blog comments powered by Disqus