Ocena użytkowników: 3 / 5

Gwiazdka aktywnaGwiazdka aktywnaGwiazdka aktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 

Projekt bazy danych strony internetowej został wykonany w programie DBDesigner 4 - obecnie nie jest dalej rozwijany, jednak dla starszego systemu Windows XP jest dobrym rozwiązaniem. Właściciele nowszych komputerów powinni zainteresować się nowszą wersją programu, rozwijaną przez firmę Oracle pod nazwą „MySQL Workbench”. W przedstawionej bazie danych wszystkie pola są obowiązkowe.

 

W bazie danych znajduje się piętnaście tabel:

  • admin – posiada informacje o administratorach, zarejestrowanych w programie (Tabela 1.);
  • artykuly – wszystkie artykuły dodane do bazy danych (Tabela 2.);
  • autor – dane o autorze razem z uprawnieniami jakie mu przysługują w aplikacji (Tabela 3.);
  • galerii – wszystkie galerie dodane do programu (Tabela 4.);
  • kat_artykuly – tabela odpowiadająca za kategorię w dziale artykuły (Tabela 5.);
  • kat_galerii – tabela odpowiadająca za kategorię w dziale galerii (Tabela 6.);
  • kat_pliki – tabela odpowiadająca za kategorię w dziale pliki (Tabela 7.);
  • pliki – zawiera wszystkie materiały dodane do działu pliki (Tabela 8.);
  • pomoc – tabela zawierająca pytania i odpowiedzi dla działu pomoc (Tabela 9.);
  • sesja_admin – przechowuje informacje dotyczące zalogowanego administratora (Tabela 10.);
  • sesja_autor – przechowuje informacje dotyczące zalogowanego autora (Tabela 11.);
  • sesja_uzytkownik – odpowiada za przechowywanie informacji, czy użytkownik jest zalogowany (Tabela 12.);
  • zdjecia – przechowuje informacje o miejscu zdjęć na serwerze dla galerii (Tabela 13.);
  • uzytkownik – przechowuje informacje o zarejestrowanych użytkownikach (Tabela 14.);
  • zmienna_sesji – odpowiada za przechowywanie sesji w bazie danych (Tabela 15.).

 

UWAGA: Tabele zmienna_sesji, sesja_admin, sesja_autor i sesja_uzytkownik zostały oparte na rozdziale 15 z książki „PHP5 Zaawansowane programowanie”.
Podczas nauki przy tworzeniu bazy danych korzystano również z książki „PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie czwarte”.

 

Tabele 1 - 15 prezentują strukturę tabel.

 

Tabela 1. admin
Nazwa pola: Opis:
id_admin Klucz główny, przydzielany automatycznie, INTEGER
nazwa Nazwa administratora, VARCHAR(35)
md5_haslo Hasło administratora, VARCHAR(32)
imie Imię, VARCHAR(35)
nazwisko Nazwisko, VARCHAR(35)
email E-mail, VARCHAR(60)
data_utworzenia Data utworzenia konta, DATETIME

 

Tabela 2. artykuly
Nazwa pola: Opis:
id_artykuly Klucz główny przydzielany automatycznie do artykułu, INT
id_kat Klucz obcy z tabeli kat_artykuly, INT
id_autor Klucz obcy z tabeli autor, INT
naglowek Tytuł artykułu,VARCHAR(100)
opis Opis artykułu, TEXT
obrazek Zdjęcie widoczne obok artykułu, VARCHAR(100)
utworzony Data utworzenia artykułu, DATETIME
opublikowany Data opublikowania artykułu, DATETIME

 

Tabela 3. autor
Nazwa pola: Opis:
id_autor Klucz główny przydzielany automatycznie, INT
id_admin Klucz obcy z tabeli admin, INTEGER
nazwa Nazwa autora potrzebna przy logowaniu, VARCHAR(35)
md5_haslo Hasło autora, VARCHAR(32)
imie Imię, VARCHAR(35)
nazwisko Nazwisko, VARCHAR(35)
p_artykuly Odpowiada za uprawnienia do artykułu, ENUM('N', 'Y')
p_galeria Odpowiada za uprawnienia do galerii, ENUM('N', 'Y')
p_pliki Odpowiada za uprawnienia do działu pliki, ENUM('N', 'Y')
p_pomoc Odpowiada za uprawnienia do działu pomoc, ENUM('N', 'Y')
adres Adres zamieszkania, VARCHAR(100)
kod_pocz Kod pocztowy, VARCHAR(10)
miasto Miasto, VARCHAR(45)
wojewodztwo Województwo, VARCHAR(45)
email E-mail, VARCHAR(80)
telefon Telefon stacjonarny, VARCHAR(20)
data_urodzenia Data urodzenia, VARCHAR(20)
data_utworzenia Data utworzenia konta autora, DATETIME

 

Tabela 4. galerii
Nazwa pola: Opis:
id_galerii Klucz główny galerii przydzielany automatycznie, INT
id_kat Klucz obcy kat_galerii, INT
id_autor Klucz obcy z tabeli autor, INT
naglowek Tytuł galerii, VARCHAR(100)
opis Opis galerii, TEXT
obrazek Obrazek widoczny jako miniaturka, VARCHAR(100)
id_zdjecia Informuje czy galeria posiada zdjęcia, INT
utworzony Data utworzenia galerii, DATETIME
opublikowany Data opublikowania galerii, DATETIME

 

Tabela 5. kat_artykuly
Nazwa pola: Opis:
id_kat Klucz główny kategorii artykułów, INT
nazwa_kat Nazwa kategorii, CHAR(40)

 

Tabela 6. kat_galerii
Nazwa pola: Opis:
id_kat Klucz główny kategorii galerii, INT
nazwa_kat Nazwa kategorii, CHAR(40)

 

Tabela 7. kat_pliki
Nazwa pola: Opis:
id_kat Klucz główny kategorii działu pliki przydzielany automatycznie, INT
nazwa_kat Nazwa kategorii, CHAR(40)

 

Tabela 8. pliki
Nazwa pola: Opis:
id_pliki Klucz główny galerii pliki, INT
id_kat Klucz obcy z kategorii plików, INT
id_autor Klucz obcy z tabeli autor, INT
naglowek Nazwa pliku, VARCHAR(100)
opis Opis dla pliku, TEXT
obrazek Nazwa obrazka, VARCHAR(100)
plik Nazwa pliku, VARCHAR(100)
utworzony Data utworzenia, DATETIME
opublikowany Data opublikowania, DATETIME

 

Tabela 9. pomoc
Nazwa pola: Opis:
id_pomoc Klucz główny przydzielany automatycznie, INT
id_autor Klucz obcy przydzielany z tabeli autor, INT
pytanie Pytanie, VARCHAR(350)
odpowiedz Odpowiedź na zadane pytanie, TEXT

 

Tabela 10. sesja_admin
Nazwa pola: Opis:
id Klucz główny przydzielany automatycznie, INT
id_admin Klucz obcy z tabeli admin, INTEGER
id_sesji_ascii Identyfikator sesji ASCII, VARCHAR(32)
zalogowany Odpowiada za informowanie czy administrator jest zalogowany, BOOL
ostatnie_dzialanie Przechowuje datę ostatniego zalogowania, TIMESTAMP
utworzono Przechowuje datę utworzenia konta, TIMESTAMP
user_agent Przechowuje typ przeglądarki administratora, VARCHAR(256)

 

Tabela 11. sesja_autor
Nazwa pola: Opis:
id Klucz główny przydzielany automatycznie, INT
id_autor Klucz obcy z tabeli autor, INT
id_sesji_ascii Identyfikator sesji ASCII, VARCHAR(32)
zalogowany Odpowiada za informowanie czy autor jest zalogowany, BOOL
ostatnie_dzialanie Przechowuje informację ostatniego zalogowania, TIMESTAMP
utworzono Przechowuje informację utworzenia sesji dla autora, TIMESTAMP
user_agent Przechowuje typ przeglądarki autora, VARCHAR(256)

 

Tabela 12. sesja_uzytkownik
Nazwa pola: Opis:
id Klucz główny przydzielany automatycznie, INT
id_uzytkownik Klucz obcy z tabeli użytkownika, INT
id_sesji_ascii Identyfikator sesji ASCII, VARCHAR(32)
zalogowany Odpowiada za informowanie czy użytkownik jest zalogowany, BOOL
ostatnie_dzialanie Zapisuje ostatnią datę zalogowania użytkownika, TIMESTAMP
utworzono Zapisuje datę utworzenia sesji, TIMESTAMP
user_agent Przechowuje typ przeglądarki użytkownika, VARCHAR(256)

 

Tabela 13. zdjecia
Nazwa pola: Opis:
id_galerii Klucz obcy, posiada informacje dla której galerii zostało przydzielone zdjęcie, INT
id_zdjecia Zapisywany jest numer galerii do której zdjęcie jest przydzielone, INT
zdjecie Nazwa zdjęcia, TEXT
utworzony Data utworzenia zdjęcia, DATETIME

 

Tabela 14. uzytkownik
Nazwa pola: Opis:
id_uzytkownik Klucz główny automatycznie przydzielany, INT
nazwa Nazwa użytkownika, VARCHAR(35)
md5_haslo Hasło, VARCHAR(32)
imie Imię, VARCHAR(35)
nazwisko Nazwisko, VARCHAR(35)
adres Adres zamieszkania, VARCHAR(60)
kod_poczt Kod pocztowy, VARCHAR(6)
miasto Miasto, VARCHAR(30)
wojewodztwo Województwo, VARCHAR(30)
email E-mail, VARCHAR(60)
telefon Telefon stacjonarny, VARCHAR(12)
data_urodzenia Data urodzenia użytkownika, VARCHAR(20)
data_utworzenia Data utworzenia użytkownika, DATETIME

 

Tabela 15. zmienna_sesji
Nazwa pola: Opis:
id_zmienna_sesji Identyfikator przydzielany automatycznie, INT
id_sesji Identyfikator sesji, INT
nazwa_zmiennej Nazwa zmiennej, VARCHAR(64)
wartosc_zmiennej Wartość zmiennej, TEXT

 

Rysunek 1. prezentuje relację pomiędzy tabelą użytkownika i tabelą sesja_uzytkownika.

 

Relacje użytkownika i tabela zmiennych sesji

Rys. 1. Relacje użytkownika i tabela zmiennych sesji

 

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

 

Relacje głównej części bazy danych

Rys. 2. Relacje głównej części bazy danych

 

Przedstawiona baza danych nie jest idealnym rozwiązaniem, jednak ma za zadanie zmusić czytelnika do myślenia w celu udoskonalenia przedstawionego rozwiązania lub napisania od podstaw własnego, pozbawionego wad zauważonych podczas zapoznawania się z artykułem. Baza danych została utworzona 2007 roku. Warto również zapoznać się z innymi przykładami projektów baz danych, które zostały umieszczone w serwisie.

 

Lista książek, do których odwołano się w artykule:

Warto przeczytać:

Wybrane książki:

Strony internetowe:

Książki Helion