Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:ztb:2010:projekty:upr_krakow:start [2010/06/09 18:50] ztb2010 |
pl:dydaktyka:ztb:2010:projekty:upr_krakow:start [2019/06/27 15:50] (aktualna) |
=== OBSŁUGA UŻYTKOWNIKA === | === OBSŁUGA UŻYTKOWNIKA === |
{{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:dfd_obsluga_uzytkownika.png|}} | {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:dfd_obsluga_uzytkownika.png|}} |
| |
| === OBSŁUGA REDKATORA === |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:dfd_obsluga_redaktora.png|}} |
| |
| === OBSŁUGA ADMINISTARTORA === |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:dfd_obsluga_administratora.png|}} |
| |
==== Wybór encji (obiektów) i ich atrybutów ==== | ==== Wybór encji (obiektów) i ich atrybutów ==== |
| |
==== Projekt diagramów STD (State Transition Diagram – diagramy przejść pomiędzy stanami) ==== | ==== Projekt diagramów STD (State Transition Diagram – diagramy przejść pomiędzy stanami) ==== |
| |
| === Diagram stanów dla użytkownika zalogowanego i gościa === |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:std_user_gosc.png|}} |
| |
| === Diagram stanów dla redaktora i administratora === |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:std_redaktor_admin.png|}} |
| |
| ==== Projektowanie tabel, kluczy, kluczy obcych, powiązań między tabelami, indeksów w oparciu o zdefiniowany diagram ERD ==== |
| |
| <code sql> |
| |
| CREATE TABLE IF NOT EXISTS aktualnosci ( |
| id_aktualnosci int(11) NOT NULL AUTO_INCREMENT, |
| naglowek varchar(100) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| zawartosc text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| data_publikacji date NOT NULL, |
| godzina_publikacji time NOT NULL, |
| autor int(11) NOT NULL, |
| zdjecie mediumblob, |
| PRIMARY KEY (id_aktualnosci), |
| KEY autor (autor) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=66 ; |
| |
| CREATE TABLE IF NOT EXISTS informacje ( |
| id_informacji int(11) NOT NULL AUTO_INCREMENT, |
| typ varchar(50) CHARACTER SET utf8 COLLATE utf8_polish_ci DEFAULT NULL, |
| autor int(11) NOT NULL, |
| zawartosc text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| data_modyfikacji date DEFAULT NULL, |
| godzina_modyfikacji time DEFAULT NULL, |
| PRIMARY KEY (id_informacji), |
| KEY autor (autor) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ; |
| |
| CREATE TABLE IF NOT EXISTS kategorie ( |
| id_kategorii int(11) NOT NULL AUTO_INCREMENT, |
| nazwa varchar(50) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| opis text CHARACTER SET utf8 COLLATE utf8_polish_ci, |
| autor varchar(100) DEFAULT NULL, |
| PRIMARY KEY (id_kategorii) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; |
| |
| CREATE TABLE IF NOT EXISTS komentarze ( |
| id_komentarza int(11) NOT NULL AUTO_INCREMENT, |
| autor int(11) NOT NULL, |
| zawartosc text CHARACTER SET utf8 COLLATE utf8_polish_ci, |
| data date DEFAULT NULL, |
| godzina time DEFAULT NULL, |
| id_obiektu int(11) NOT NULL, |
| typ varchar(50) NOT NULL, |
| PRIMARY KEY (id_komentarza), |
| KEY autor (autor), |
| KEY id_obiektu (id_obiektu) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=29 ; |
| |
| CREATE TABLE IF NOT EXISTS komentarz_obiekt ( |
| id_komentarza int(11) NOT NULL, |
| id_obiektu int(11) NOT NULL, |
| typ varchar(20) NOT NULL, |
| PRIMARY KEY (id_komentarza,id_obiektu), |
| KEY id_obiektu (id_obiektu), |
| KEY typ (typ) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
| |
| CREATE TABLE IF NOT EXISTS ksiazki ( |
| id_ksiazki int(11) NOT NULL AUTO_INCREMENT, |
| nazwa varchar(50) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| opis text CHARACTER SET utf8 COLLATE utf8_polish_ci, |
| autor int(11) DEFAULT NULL, |
| kategoria int(11) DEFAULT NULL, |
| PRIMARY KEY (id_ksiazki), |
| KEY autor (autor), |
| KEY kategoria (kategoria) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=22 ; |
| |
| CREATE TABLE IF NOT EXISTS linki ( |
| id_linku int(11) NOT NULL AUTO_INCREMENT, |
| autor int(11) NOT NULL, |
| nazwa varchar(50) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| opis text CHARACTER SET utf8 COLLATE utf8_polish_ci, |
| link varchar(100) NOT NULL, |
| logo varchar(100) NOT NULL, |
| data_dodania datetime NOT NULL, |
| PRIMARY KEY (id_linku), |
| KEY autor (autor) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ; |
| |
| CREATE TABLE IF NOT EXISTS media ( |
| id int(11) NOT NULL AUTO_INCREMENT, |
| link text NOT NULL, |
| nazwa varchar(100) CHARACTER SET utf8 COLLATE utf8_polish_ci DEFAULT NULL, |
| autor int(11) DEFAULT NULL, |
| data_dodania datetime NOT NULL, |
| PRIMARY KEY (id), |
| KEY autor (autor) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ; |
| |
| CREATE TABLE IF NOT EXISTS newsletter ( |
| id int(11) NOT NULL AUTO_INCREMENT, |
| tytul varchar(120) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| tresc text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| data_wyslania datetime NOT NULL, |
| autor int(11) NOT NULL, |
| PRIMARY KEY (id), |
| KEY autor (autor) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ; |
| |
| CREATE TABLE IF NOT EXISTS organizacje ( |
| id_organizacji int(11) NOT NULL AUTO_INCREMENT, |
| dodal varchar(50) NOT NULL, |
| nazwa varchar(50) NOT NULL, |
| opis text, |
| link varchar(100) NOT NULL, |
| logo varchar(100) NOT NULL, |
| data_dodania datetime NOT NULL, |
| PRIMARY KEY (id_organizacji) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; |
| |
| CREATE TABLE IF NOT EXISTS spotkania ( |
| id_spotkania int(11) NOT NULL AUTO_INCREMENT, |
| nazwa varchar(50) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| opis text CHARACTER SET utf8 COLLATE utf8_polish_ci, |
| data_dodania datetime DEFAULT NULL, |
| autor int(11) DEFAULT NULL, |
| PRIMARY KEY (id_spotkania), |
| KEY autor (autor) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ; |
| |
| CREATE TABLE IF NOT EXISTS teksty ( |
| id_tekstu int(11) NOT NULL AUTO_INCREMENT, |
| naglowek varchar(120) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| tresc text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| autor int(11) NOT NULL, |
| zaakceptowano tinyint(4) NOT NULL DEFAULT '0', |
| data_dodania datetime NOT NULL, |
| PRIMARY KEY (id_tekstu), |
| KEY autor (autor) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; |
| |
| CREATE TABLE IF NOT EXISTS uzytkownicy ( |
| id_uzytkownika int(11) NOT NULL AUTO_INCREMENT, |
| login varchar(50) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| haslo varchar(40) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, |
| email varchar(40) NOT NULL, |
| imie varchar(40) CHARACTER SET utf8 COLLATE utf8_polish_ci DEFAULT NULL, |
| nazwisko varchar(40) CHARACTER SET utf8 COLLATE utf8_polish_ci DEFAULT NULL, |
| rola varchar(20) NOT NULL DEFAULT 'user', |
| newsletter tinyint(4) NOT NULL DEFAULT '0', |
| data_rejestracji datetime DEFAULT NULL, |
| PRIMARY KEY (id_uzytkownika) |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ; |
| </code> |
| |
| ==== Analiza zależności funkcyjnych i normalizacja tabel ==== |
| |
| W każdej tabeli atrybuty są w pełni bezpośrednio zależne od klucza głównego, dane przechowywane w bazie są z punktu widzenia implemntacji projektu istotnie atomiczne, więc wydaje nam się, że baza danych spełnia założenia 3NF. |
| |
| ==== Projektowanie operacji na danych ==== |
| |
| <code sql> |
| SELECT * FROM komentarze JOIN uzytkownicy ON (komentarze.autor = uzytkownicy.id_uzytkownika) WHERE id_obiektu = $id AND typ = 'aktualnosc' ORDER BY data DESC, godzina DESC; |
| |
| SELECT * FROM newsletter LEFT JOIN uzytkownicy ON (newsletter.autor = uzytkownicy.id_uzytkownika) WHERE id = $id; |
| |
| SELECT id_uzytkownika, login, email FROM uzytkownicy ORDER BY data_rejestracji; |
| |
| UPDATE teksty ('naglowek', 'tresc', 'autor') VALUES ($naglowek, $tresc, $autor) WHERE id_tekstu = $id; |
| </code> |
| |
| ==== Zdefiniowanie interfejsów do prezentacji, edycji i obsługi danych ==== |
| |
| * rejestracja użytkownika |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:rejestracja.jpg|}} |
| |
| * logowanie |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:logowanie.jpg|}} |
| |
| * dodawanie komentarza |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:dodawanie_komentarza.jpg|}} |
| |
| * przypomnienie hasła |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:przypomnienie_hasla.jpg|}} |
| |
| * dodawanie tekstu |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:dodanie_wiadmosci.jpg|}} |
| |
| * dodawanie multimediów |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:dodanie_multimediow.jpg|}} |
| |
| * dodawanie książki |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:dodawanie_ksiazki.jpg|}} |
| |
| |
| |
| |
| |
| |
| |
| ==== Zdefiniowanie panelu sterowania aplikacji ==== |
| |
| * akceptacja tekstów użytkowników |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:akceptacja_tekstow.jpg|}} |
| |
| * edycja linków |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:edycja_linku.jpg|}} |
| |
| * edycja kont użytkowników |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:edycja_uzytkownikow.jpg|}} |
| |
| * edycja wiadomości |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:edycja_wiadomosci.jpg|}} |
| |
| * zarządzanie użytkownikami |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:uzytkownicy.jpg|}} |
| |
| * rozsyłanie newslettera |
| {{:pl:dydaktyka:ztb:2010:projekty:upr_krakow:wysylanie_newslettera.jpg|}} |
| |