Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

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)
Linia 136: Linia 136:
 === 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 ====
Linia 231: Linia 237:
  
 ==== 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|}}
 +
pl/dydaktyka/ztb/2010/projekty/upr_krakow/start.1276102243.txt.gz · ostatnio zmienione: 2019/06/27 15:56 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0