Ocena użytkowników: 5 / 5

Gwiazdka aktywnaGwiazdka aktywnaGwiazdka aktywnaGwiazdka aktywnaGwiazdka aktywna
 

Schemat biblioteki jest przedstawiony w formie graficznej utworzonej w programie MySQL Workbench. Projekt wykorzystuje silnik bazy danych InnoDB. Zachęcam do zainstalowania wspomnianego programu i przepisania schematu bazy danych (rys. 1.). Artykuł zawiera wszystkie informacje potrzebne do prawidłowego uruchomienia przykładu. Materiały do artykułu można znaleźć w pliku mysql-biblioteka.zip.

1. Schemat bazy danych

Rysunek 1. prezentuje relację pomiędzy tabelami w bazie danych.

 

Relacje głównej części bazy danych - Biblioteka
Rys. 1. Relacje głównej części bazy danych

 

W bazie danych znajduje się sześć tabel:

  • czytelnik - posiada informacje o czytelnikach zarejestrowanych w programie (Tabela 1.);
  • zamowienie - posiada informacje o zamówionych, wypożyczonych czy oddanych książkach w bibliotece (Tabela 2.);
  • kategoria - tabela zawierająca wszystkie kategorie książek w systemie (Tabela 3.);
  • ksiazka - wszystkie książki dodane do bazy danych (Tabela 4.);
  • bibliotekarz - posiada informacje o bibliotekarzach zarejestrowanych w programie (Tabela 5.);
  • admin - posiada informacje o administratorach zarejestrowanych w programie (Tabela 6.).

 

Tabele 1 - 6 prezentują strukturę tabel.

 

Tabela 1. czytelnik
Nazwa pola: Opis:
id_czytelnik Klucz główny przydzielony automatycznie
login Nazwa czytelnika potrzeba przy logowaniu
haslo Hasło niezaszyfrowane
imie Imię
nazwisko Nazwisko
adres Adres zamieszkania np.: ul. Przykład 3/12
miasto Miasto
wojewodztwo Nazwa województwa
telefon Telefony
kod_pocztowy Kod pocztowy
email Adres e-mail

 

Tabela 2. zamowienie
Nazwa pola: Opis:
id_zamowienie Klucz główny przydzielony automatycznie
id_czytelnik Klucz obcy z tabeli "czytelnik"
id_ksiazka Klucz obcy z tabeli "ksiazka"
data_zamowienia Data złożenia zamówienia w bibliotece
data_odbioru Data odbioru książki z biblioteki
data_zwrotu Data zwrotu książki do biblioteki

 

Tabela 3. kategoria
Nazwa pola: Opis:
id_kategoria Klucz główny przydzielony automatycznie
nazwa Nazwa kategorii

 

Tabela 4. ksiazka
Nazwa pola: Opis:
id_ksiazka Klucz główny przydzielony automatycznie
id_kategoria Klucz obcy z tabeli "kategoria"
isbn Niepowtarzalny 13-cyfrowy identyfikator książki
tytul Tytuł książki
autor Imię i Nazwisko autora książki
stron Liczba stron książki
wydawnictwo Nazwa wydawnictwa, w którym wydano książkę
rok_wydania Rok wydania książki
opis Opis książki

 

Tabela 5. bibliotekarz
Nazwa pola: Opis:
id_bibliotekarz Klucz główny przydzielony automatycznie
login Nazwa bibliotekarza potrzebna przy logowaniu
haslo Hasło niezaszyfrowane

 

Tabela 6. admin
Nazwa pola: Opis:
id_admin Klucz główny przydzielony automatycznie
login Nazwa administratora potrzebna przy logowaniu
haslo Hasło niezaszyfrowane

 

 

2. Tworzenie bazy danych

Po uruchomieniu MySQL należy utworzyć bazę danych odpowiedzialną za zarządzanie projektem biblioteki (Listing 1.).

 

Listing 1. Polecenie tworzące bazę danych

CREATE DATABASE biblioteka;

 

3. Rejestrowanie użytkownika

Do pracy z bazą danych MySQL potrzebny jest użytkownik. Domyślnym użytkownikiem jest root - jeśli pracujemy na localhost. Możemy również utworzyć nowego użytkownika dla konkretnej bazy danych - polecenie GRANT (Listing 2.).

 

Listing 2. Składnia polecenia GRANT

GRANT przywileje[kolumny]
ON obiekt
TO identyfikator_użytkownika [IDENTIFIED BY 'hasło']
[WITH GRANT OPTION]

 

Polecenie GRANT przedstawione na listingu 3 odpowiada za utworzenie użytkownika biblioteka z uprawnieniami SELECT, INSERT, DELETE, UPDATE z hasłem biblioteka. Konto biblioteka posiada dostęp do wszystkich tabel w bazie danych "biblioteka".

 

Listing 3. Polecenie odpowiedzialne za utworzenie konta użytkownika

GRANT SELECT, INSERT, DELETE, UPDATE
ON biblioteka.*
TO biblioteka@localhost IDENTIFIED BY 'biblioteka';

 

4. Przejście do odpowiedniej bazy danych

Po zalogowaniu się do bazy danych będziemy zmuszeni przejść do interesującej nas bazy danych "biblioteka" za pomocą polecenia USE (Listing 4.).

 

Listing 4. Przejście do bazy danych biblioteka

USE biblioteka;

 

5. Polecenie CREATE

Po utworzeniu bazy danych należy utworzyć tabele za pomocą polecenia CREATE (listing 5.). Wymagany kod do utworzenia tabel został przedstawiony na listingu 6.

Listing 5. Składnia polecenia CREATE

CREATE TABLE nazwa_tabeli (kolumny)

 

Listing 6. Polecenia odpowiedzialne za dodanie wszystkich tabel do bazy danych

-- -----------------------------------------------------
-- Table `biblioteka`.`czytelnik`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `biblioteka`.`czytelnik` (
`id_czytelnik` INT NOT NULL AUTO_INCREMENT COMMENT 'Klucz główny przydzielony automatycznie',
`login` VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Nazwa czytelnika potrzeba przy logowaniu.',
`haslo` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Hasło niezaszyfrowane',
`imie` VARCHAR(100) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Imię ',
`nazwisko` VARCHAR(100) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Nazwisko',
`adres` VARCHAR(200) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Adres zamieszkania np.: ul. Przykład 3/12',
`miasto` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Miasto',
`wojewodztwo` VARCHAR(100) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Nazwa województwa',
`telefon` VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL COMMENT 'Telefony',
`kod_pocztowy` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Kod pocztowy',
`email` VARCHAR(100) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Adres e-mail',
PRIMARY KEY (`id_czytelnik`))
ENGINE = InnoDB
COMMENT = 'Posiada informacje o czytelnikach zarejestrowanych w programie.';

-- -----------------------------------------------------
-- Table `biblioteka`.`kategoria`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `biblioteka`.`kategoria` (
`id_kategoria` INT NOT NULL AUTO_INCREMENT COMMENT 'Klucz główny przydzielony automatycznie',
`nazwa` VARCHAR(200) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Nazwa kategorii',
PRIMARY KEY (`id_kategoria`))
ENGINE = InnoDB
COMMENT = 'Tabela zawierająca wszystkie kategorie książek w systemie.';

-- -----------------------------------------------------
-- Table `biblioteka`.`ksiazka`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteka`.`ksiazka` (
`id_ksiazka` INT NOT NULL AUTO_INCREMENT COMMENT 'Klucz główny przydzielony automatycznie',
`id_kategoria` INT NOT NULL COMMENT 'Klucz obcy z tabeli kategoria',
`isbn` VARCHAR(13) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Niepowtarzalny 13-cyfrowy identyfikator książki',
`tytul` VARCHAR(200) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Tytuł książki',
`autor` VARCHAR(70) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Imię i Nazwisko autora książki',
`stron` INT(4) NOT NULL COMMENT 'Liczba stron książki',
`wydawnictwo` VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Nazwa wydawnictwa, w którym wydano książkę',
`rok_wydania` INT(4) NOT NULL COMMENT 'Rok wydania książki',
`opis` TEXT CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL COMMENT 'Opis książki',
PRIMARY KEY (`id_ksiazka`),
INDEX `fk_ksiazka_kategoria1_idx` (`id_kategoria` ASC),
CONSTRAINT `fk_ksiazka_kategoria1`
FOREIGN KEY (`id_kategoria`)
REFERENCES `biblioteka`.`kategoria` (`id_kategoria`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
COMMENT = 'Wszystkie książki dodane do bazy danych.';


-- -----------------------------------------------------
-- Table `biblioteka`.`zamowienie`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteka`.`zamowienie` (
`id_zamowienie` INT NOT NULL AUTO_INCREMENT COMMENT 'Klucz główny przydzielony automatycznie',
`id_czytelnik` INT NOT NULL COMMENT 'Klucz obcy z tabeli czytelnik',
`id_ksiazka` INT NOT NULL COMMENT 'Klucz obcy z tabeli ksiazka',
`data_zamowienia` DATETIME NOT NULL COMMENT 'Data złożenia zamówienia w bibliotece',
`data_odbioru` DATETIME NULL COMMENT 'Data odbioru książki z biblioteki ',
`data_zwrotu` DATETIME NULL COMMENT 'Data zwrotu książki do biblioteki',
PRIMARY KEY (`id_zamowienie`),
INDEX `fk_zamowienie_czytelnik1_idx` (`id_czytelnik` ASC),
INDEX `fk_zamowienie_ksiazka1_idx` (`id_ksiazka` ASC),
CONSTRAINT `fk_zamowienie_czytelnik1`
FOREIGN KEY (`id_czytelnik`)
REFERENCES `biblioteka`.`czytelnik` (`id_czytelnik`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_zamowienie_ksiazka1`
FOREIGN KEY (`id_ksiazka`)
REFERENCES `biblioteka`.`ksiazka` (`id_ksiazka`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
COMMENT = 'Posiada informacje o zamówionych, wypożyczonych czy oddanych książkach w bibliotece.';

-- -----------------------------------------------------
-- Table `biblioteka`.`admin`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteka`.`admin` (
`id_admin` INT NOT NULL AUTO_INCREMENT COMMENT 'Klucz główny przydzielony automatycznie',
`login` VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Nazwa administratora potrzebna przy logowaniu',
`haslo` VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Hasło niezaszyfrowane',
PRIMARY KEY (`id_admin`))
ENGINE = InnoDB
COMMENT = 'Posiada informacje o administratorach zarejestrowanych w programie.';

-- -----------------------------------------------------
-- Table `biblioteka`.`bibliotekarz`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteka`.`bibliotekarz` (
`id_bibliotekarz` INT NOT NULL AUTO_INCREMENT COMMENT 'Klucz główny przydzielony automatycznie',
`login` VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Nazwa bibliotekarza potrzebna przy logowaniu',
`haslo` VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL COMMENT 'Hasło niezaszyfrowane',
PRIMARY KEY (`id_bibliotekarz`))
ENGINE = InnoDB
COMMENT = 'Posiada informacje o bibliotekarzach zarejestrowanych w programie.';

 

6. Polecenie INSERT

Polecenie INSERT służy do zapisywania nowych danych w tabelach (Listing 7). Dodanie nowej książki przedstawiono na listingu 8.

 

Listing 7. Składnia polecenia INSERT

INSERT [INTO] nazwa_tabeli (kolumna_1, kolumna_2, kolumna_3, ...)
VALUE (wartość_1, wartość_2, wartość_3, ...);

 

Listing 8. Dodawanie nowego rekordu do tabeli ksiazka

INSERT INTO biblioteka.ksiazka VALUE(20, 3, 8373614117, 'Java. Tworzenie gier', 'David Brackeen, Bret Barker, Laurence Vanhelsuwe', 784, 'Helion', 2004, 'Napisz wspaniałą grę w Javie. W tej książce znajdziesz wszystkie wiadomości, które są do tego niezbędne.');

 

MySQL wymaga aby łańcuchy znaków były podawane w cudzysłowach albo apostrofach i oddzielone przecinkami. Zaś liczby i daty nie wymagają cudzysłowów ani apostrofów.

 

Listing 9. Dodawanie nowego rekordu do tabeli ksiazka z pominięciem pól opcjonalnych.

INSERT INTO ksiazka SET id_ksiazka=21, id_kategoria=3, isbn='9788324685004', tytul='TDD. Sztuka tworzenia dobrego kodu', autor='Kent Beck', stron='232', wydawnictwo='Helion', rok_wydania='2014';

 

Kod listingu 9 zadziała w ten sam sposób jak kod listingu 8. Wystarczy porównać posiadane informacje z nazwami kolumn, nie są wymagane wszystkie dane można pominąć pola opcjonalne.

Przykładowe dane dla biblioteki zostały przedstawione na listingu 10.

 

Listing 10. Przykładowe dane, polecenia INSERT - baza danych biblioteka

USE biblioteka;

-- -----------------------------------------------------
-- Skrypt odpowiedzialny za dodanie kategorii do systemu
-- -----------------------------------------------------
INSERT INTO biblioteka.kategoria VALUES(1, 'Biznes');
INSERT INTO biblioteka.kategoria VALUES(2, 'Poradniki');
INSERT INTO biblioteka.kategoria VALUES(3, 'Programowanie');
INSERT INTO biblioteka.kategoria VALUES(4, 'Programowanie mobilne');
INSERT INTO biblioteka.kategoria VALUES(5, 'Webmasterstwo');
INSERT INTO biblioteka.kategoria VALUES(6, 'Systemy operacyjne');


-- -----------------------------------------------------
-- Skrypt odpowiedzialny za dodanie bibliotekarza do systemu
-- -----------------------------------------------------
INSERT INTO biblioteka.bibliotekarz VALUES(null, 'bibliotekarz', 'bibliotekarz');


-- -----------------------------------------------------
-- Skrypt odpowiedzialny za dodanie administratora do systemu
-- -----------------------------------------------------
INSERT INTO biblioteka.admin VALUES(null, 'admin', 'admin');


-- -----------------------------------------------------
-- Skrypt odpowiedzialny za dodanie czytelników do systemu
-- -----------------------------------------------------
INSERT INTO biblioteka.czytelnik VALUES(1, 'czytelnik_1', 'hasło_czytelnika', 'Piotr', 'Klimek', 'ul. Przykład 4/ 12', 'Lublin', 'Lubelskie', null, '20-998', Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.');

INSERT INTO biblioteka.czytelnik VALUES(2, 'czytelnik_2', 'hasło_czytelnika', 'Patryk', 'Klimek', 'ul. Przykład 10/300', 'Lublin', 'Lubelskie', null, '20-999', Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.');


-- -----------------------------------------------------
-- Skrypt odpowiedzialny za dodanie książek do systemu
-- -----------------------------------------------------
INSERT INTO biblioteka.ksiazka VALUE(1, 3, 9788324631773, 'PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie czwarte', 'Luke Welling, Laura Thomson', 856, 'Helion', 2009, 'Czwarte wydanie bestsellerowego podręcznika dla webmasterów wykorzystujących w swojej pracy funkcjonalność języka PHP i bazy danych MySQL.');

INSERT INTO biblioteka.ksiazka VALUE(2, 3, 9788324685301, 'Język C++. Kompendium wiedzy', 'Bjarne Stroustrup', 1296, 'Helion', 2014, null);

INSERT INTO biblioteka.ksiazka VALUE(3, 3, 9788324675340, 'Mistrz czystego kodu. Kodeks postępowania profesjonalnych programistów', 'Robert C. Martin', 216, 'Helion', 2013, null);

INSERT INTO biblioteka.ksiazka VALUE('4', '6', '9788324690138', 'Kali Linux. Testy penetracyjne', 'Joseph Muniz, Aamir Lakhani', '336', 'Helion', '2014', null);

INSERT INTO biblioteka.ksiazka VALUE(5, 3, 9788324621880, 'Czysty kod. Podręcznik dobrego programisty', 'Robert C. Martin', 424, 'Helion', 2010, null);

INSERT INTO biblioteka.ksiazka VALUE(6, 3, 9788324632374, 'Pragmatyczny programista. Od czeladnika do mistrza', 'Andrew Hunt, David Thomas', 332, 'Helion', 2011, null);

INSERT INTO biblioteka.ksiazka VALUE(7, 3, 9788324683178, 'Praca z zastanym kodem. Najlepsze techniki', 'Michael Feathers', 440, 'Helion', 2014, null);

INSERT INTO biblioteka.ksiazka VALUE(8, 5, 9788324685042, 'Tajemnice JavaScriptu. Podręcznik ninja', 'John Resig, Bear Bibeault', 432, 'Helion', 2014, null);

INSERT INTO biblioteka.ksiazka VALUE(9, 3, 9788324689361, 'Java EE 6. Tworzenie aplikacji w NetBeans 7', 'David R. Heffelfinger', 352, 'Helion', 2014, null);

INSERT INTO biblioteka.ksiazka VALUE(10, 5, 9788324666676, 'Projektowanie stron internetowych. Przewodnik dla początkujących webmasterów po HTML5, CSS3 i grafice. Wydanie IV', 'Jennifer Niederst Robbins', 600, 'Helion', 2014, null);


-- -----------------------------------------------------
-- Skrypt odpowiedzialny za dodanie zamówień dla czytelnik_1
-- -----------------------------------------------------
INSERT INTO biblioteka.zamowienie SET id_czytelnik=1, id_ksiazka=1, data_zamowienia='2014-08-01 10:12:02';

INSERT INTO biblioteka.zamowienie SET id_czytelnik=1, id_ksiazka=2, data_zamowienia='2014-08-01 10:12:02', data_odbioru='2014-08-03 12:10:10';

INSERT INTO biblioteka.zamowienie SET id_czytelnik=1, id_ksiazka=5, data_zamowienia='2014-08-01 10:13:02', data_odbioru='2014-08-03 12:11:10', data_zwrotu='2014-08-15 12:00:00';


-- -----------------------------------------------------
-- Skrypt odpowiedzialny za dodanie dwóch zamówień dla czytelnik_2
-- -----------------------------------------------------
INSERT INTO biblioteka.zamowienie SET id_czytelnik=2, id_ksiazka=3, data_zamowienia='2014-08-02 12:00:02';

INSERT INTO biblioteka.zamowienie SET id_czytelnik=2, id_ksiazka=4, data_zamowienia='2014-08-03 09:12:02', data_odbioru='2014-08-05 15:20:00';

 

7. Polecenie SELECT

Polecenie SELECT jest jednym z najczęściej wykonywanych poleceń w języku SQL (Listing 10.).

 

Listing 10. Składnia polecenia SELECT

SELECT pozycje
FROM nazwy_tabel
[WHERE warunek]
[GROUP BY rodzaj_grupowania]
[HAVING wartość_funkcji]
[ORDER BY porządek_sortowania]
[LIMIT ilość];

 

Na listingu 11 przedstawiono zapytanie SELECT wyszukujące wszystkich czytelników (rys. 2.).

 

Listing 11. Proste zapytanie SELECT dotyczące czytelników

SELECT id_czytelnik, imie, nazwisko, miasto, telefon FROM biblioteka.czytelnik;

 

 

Lista czytelników w bibliotece

Rys. 2. Lista czytelników w bibliotece

 

Na listingu 12 przedstawiono zapytanie SELECT wyświetlające wszystkie kategorie (rys. 3.).

 

Listing 12. Polecenie SELECT wyświetla wszystkie kolumny tabeli kategoria

SELECT * FROM kategoria;

 

 

Lista wszystkich kategorii - Biblioteka

Rys. 3. Lista wszystkich kategorii

 

Na listingu 13 przedstawiono zapytanie SELECT wyświetlające wszystkie zamówione książki dla wybranego czytelnika, id_czytelnik=1 (rys. 4.).

 

Listing 13. Polecenie SELECT wyświetla informacje o wybranym czytelniku

SELECT * FROM biblioteka.zamowienie WHERE id_czytelnik = 1;

 

 

Lista wszystkich zamówień wybranego czytelnika biblioteki

Rys. 4. Lista wszystkich zamówień wybranego czytelnika biblioteki

 

Na listingu 14 przedstawiono zapytanie SELECT wyszukujące zamówienia, które zawierają szukany ISBN książki (rys. 5.).

 

Listing 14. Polecenie SELECT sprawdza dane z kilku tabel jednocześnie

SELECT z.id_zamowienie, k.isbn, z.id_czytelnik, z.data_zamowienia, z.data_odbioru
FROM zamowienie z, ksiazka k
WHERE k.isbn = '9788324685301'
AND z.id_ksiazka = k.id_ksiazka
ORDER BY z.data_zamowienia DESC
LIMIT 1;

 

 

Wynik zapytania z dwóch tabel - system biblioteka

Rys. 5. Wynik zapytania z dwóch tabel

 

8. Polecenie UPDATE

Polecenie UPDATE stosujemy do uaktualniania danych w tabelach (Listing 15).

 

Listing 15. Składnia polecenia UPDATE

UPDATE nazwa_tabeli
SET kolumna_1 = wyrażenie_1, kolumna_2 = wyrażenie_2, …
[WHERE warunek]
[LIMIT ilość]

 

W celu uaktualnieniu danych w wybranym zamówieniu należy skorzystać z zapytania przedstawionego na listingu 16 (rys. 6., rys. 7.).

 

Listing 16. Zapytanie dodaje datę odbioru książki przez czytelnika z aktualnym czasem.

UPDATE zamowienie SET data_odbioru = CURRENT_TIMESTAMP WHERE id_zamowienie = '4';

 

 

Lista zamówień przed aktualizacją - system biblioteka

Rys. 6. Lista zamówień przed aktualizacją

 

Lista zamówień po aktualizacji - system biblioteka

Rys. 7. Lista zamówień po aktualizacji

 

9. Zakończenie

Projekt został zrealizowany na zakończenie studium informatycznego w 2005 roku. Baza danych była tylko częścią aplikacji obsługiwanej przez przeglądarkę internetową.

Materiały do artykułu można znaleźć w pliku mysql-biblioteka.zip.

 

Dodatkowe zadania:

  1. Połączyć tabele bibliotekarz i admin, stworzyć dodatkowe pole odpowiedzialne za rozróżnienie wybranego konta, czy jest administratorem czy bibliotekarzem. Nowa nazwa tabeli user. Podpowiedzi należy szukać w artykule "Przykładowa baza danych prostego systemu CMS".
  2. Połączyć nową tabele user z tabelą czytelnik w celu przechowania informacji, który z administratorów czy bibliotekarzy utworzył konto wybranego czytelnika. Podpowiedzi należy szukać w artykule "Przykładowa baza danych prostego systemu CMS".
  3. Utworzyć tabele adres i kontakt przechowujące informacje dla czytelnika, bibliotekarza i administratora. Jak utworzyć tabele można zrozumieć przeglądając artykuł "Przykładowa baza danych sklepu internetowego, diagram związków encji".
  4. Po zapoznaniu się z przykładową bazą danych, każdy z czytelników znajdzie kilka fragmentów, które z chęcią by poprawił. Ostatnim zadaniem jest stworzenie własnej bazy danych od podstaw, która będzie posiadała poprawki czytelnika. Zapraszam do eksperymentowania.

 

Warto przeczytać również:

Wybrane książki:

Strony internetowe:

Książki Helion