MODEL KONCEPTUALNY DO PROJEKTU "CMENTARZ" ADRIAN MULARCZYK
1 Informacje ogólne o projekcie Niniejszy projekt obejmuje aplikację bazodanową służącą do przechowywania informacji o miejscach pochówku na różnych cmentarzach. Aplikacja ta udostępnia następujące funkcjonalności: - Podział na role: guest (gość), clinet (klient), manager (zarządca), admin (administrator). - Dodawanie, usuwanie, edytowanie, przeglądanie: cmentarzy i grobów/nagrobków 1. - Przeglądanie informacje o dostępnych miejscach na cmentarzach. - Przeglądanie informacje o zabytkowych grobach/nagrobkach na cmentarzach. - Przeglądanie administracji cmentarzy. - Rezerwację, wykup, opłatę na dalsze lata miejsc na cmentarzu (grobów/nagrobków). - Informacje o dokonanych płatnościach za rezerwacje, wykup oraz opłatę na dalsze lata miejsc na cmentarzu (grobów/nagrobków). - Umożliwia poszukiwanie grobów/nagrobków. 1 W tym projekcie słowo groby i nagrobki oznacza to samo, dlatego są używane zawsze oba na raz. Używając tego zwrotu autor ma na myśli grób, jako miejsce gdzie spoczywa zmarły, a także nagrobek, jako tablica z informacjami o zmarłym (w projekcie służą do tego dwie encje: Graves i Dead).
2 Diagram związków encji (Diagram E-R)
3 Opis Encji 3.1 Cemeteries W tej encji będą znajdywały sie informacje odnośnie cmentarzy. Będzie ona posiadała następujące atrybuty: Name (nazwa), Address (adres), City (miasto), Graves_Number (liczba miejsc na cmentarzu/liczba grobów), Free_Graves (liczba wolnych miejsc na cmentarzu/grobów), Antique_Graves (liczba zabytkowych miejsc na cmentarzu/grobów). 3.2 Graves W tej encji będą znajdywały sie informacje odnośnie miejsc na cmentarzu/grobów. Będzie ona posiadała następujące atrybuty: Sector (sektor na cmentarzu), Position_Row (rząd w sektorze), Position_Column (kolumna w sektorze), Antique (czy miejsce na cmentarzu/grób jest zabytkowe), Reservation_Price (cena rezerwacji miejsca na cmentarzu/grobu na miesiąc), Reserved_From (zarezerwowany od), Reserved_To (zarezerwowany do), Buyout_Price (cena wykupu miejsca na cmentarzu/grobu na rok), Bought_Date (data wykupu miejsca na cmentarzu/grobu), Paid_To (do kiedy miejsce na cmentarzu/grób jest opłacone). 3.3 Dead W tej encji będą znajdywały sie informacje odnośnie zmarłych pochowanych w grobach na cmentarzach. Będzie ona posiadała następujące atrybuty: First_Name (imię), Sur_Name (nazwisko), Day_Of_Born (data narodzin), Day_Of_Death (data śmierci). Informacje znajdujące się w tej encji są w aplikacji traktowane jako nagrobki. 3.4 Users W tej encji będą znajdywały sie informacje odnośnie użytkowników korzystających z aplikacji - zarówno klientów, jak i administracji cmentarza. Będzie ona posiadała następujące atrybuty potrzebne do autentykacji i autoryzacji: Login (login za pomocą którego użytkownik będzie logował się do aplikacji), Password (hasło za pomocą którego użytkownik podczas logowania będzie oświadczał, że jest tym, za kogo się podaje), Role (rola, za pomocą której będą przyznawane mu prawa dostępu w aplikacji i bazie danych). Oprócz tych atrybutów, będą także znajdowały się w tej encji następujące atrybuty, które będą wykorzystywane w aplikacji: First_Name (imię), Sur_Name (nazwisko), Address (adres zamieszkania), City (miasto zamieszkania), Phone_Number (numer telefonu), Mail_Address (adres e-mail), Day_Of_Born (dzień narodzin). 3.5 Payments W tej encji będą znajdywały sie informacje odnośnie płatności dokonany przez klientów za rezerwacje, wykup lub opłatę na kolejne lata miejsc na cmentarzu (grobów/nagrobków). Będzie ona posiadała następujące atrybuty: Date (kiedy płatność została dokonana), Amount_Of_Money (na jaką kwotę opiewała płatność), Reservation (będzie to wartość boolowska równa true, jeśli płatność dotyczyła rezerwacji i false, jeśli dotyczyła wykupu lub opłacenia na kolejne lata miejsca na cmentarzu (grobu/nagrobku)).
4 Komentarze 4.1 Encja Graves - Rezerwacja miejsca na cmentarzu jest w momencie, kiedy rezerwujemy samo miejsce, nikogo w nim nie chowamy. Jeśli w zarezerwowanym miejscu pochowamy zmarłego następuje wykup miejsca na cmentarzu (grobu/nagrobku). - Można wykupić miejsce na cmenatrzu i nikogo w nim nie pochować. - Nie trzeba wykupywać rezerwacji. - Reservation_Price jest to cena za miesiąc rezerwacji. - Buyout_Price jest to cena za rok wykupu miejsca na cmentarzu (grobu/nagrobku). - Reserved_To nie może być większe od Reserved_From. - W momencie dokonaniu wykupu jeśli Reserved_To było większej niż data wykupu, to Reserved_To zostaje zmienione na date wykupu (Reserved_To nie może być większej niż Bought_Date). - Nie może być dwóch różnych grobów w tym samym miejscu (tzn. dwa różne groby nie mogą znajdować się na tym samym sektorze, w tym samym rzędzie i w tej samej kolumnie). - W jednym grobie może spoczywać kilkoro zmarłych. 4.2 Encja Dead - Day_Of_Born nie może być większe od Day_Of_death. 4.3 Encja Users - Login musi być unikatowy. 4.4 Encja Cemeteries - Free_Graves nie może być większe od Graves_Number. - Antique_Graves nie może być większe od Graves_Number. 4.5 Inne - Osoba, która wykupi miejsce na cmentarzu (grób/nagrobek) będzie miała pełen wgląd w informacje o danym miejscu na cmentarzu (grobie/nagrobku) - także wgląd w płatności dotyczące tego miejsca na cmentarzu (grobu/nagrobku). Jeśli jakaś inna osoba także będzie chciała mieć wgląd w te informacje, będzie musiała zwrócić się o to do admina.
5 Role 5.1 Guest - Może wyszukiwać groby/nagrobki. - Może przeglądać administracje cmentarzy. - Może przeglądać informacje o zabytkowych nagrobkach na cmentarzach. - Może przeglądać informacje o dostępnych miejscach na cmentarzach. - Może przeglądać cmentarze i groby/nagrobki. - Może rejestrować się w aplikacji (zakładać konto klienta). 5.2 Client - Może wyszukiwać groby/nagrobki. - Może przeglądać administracje cmentarzy. - Może przeglądać informacje o zabytkowych nagrobkach na cmentarzach. - Może przeglądać informacje o dostępnych miejscach na cmentarzach. - Może przeglądać cmentarze i groby/nagrobki. - Może dokonywać rezerwacji, wykupu, a także opłacać na dalsze lata miejsca na cmentarzu (groby/nagrobki). - Może przeglądać płatności związane z miejscami na cmentarzu, które zarezerwował/wynajął. - Może edytować informacje o sobie. 5.3 Manager - Może wyszukiwać groby/nagrobki. - Może przeglądać administracje cmentarzy. - Może przeglądać informacje o zabytkowych nagrobkach na cmentarzach. - Może przeglądać informacje o dostępnych miejscach na cmentarzach. - Może przeglądać cmentarze i groby/nagrobki. - Może przeglądać, dodawać, usuwać i edytować cmentarze oraz groby/nagrobki na wcześniej dodanym przez siebie cmentarzu. - Może przeglądać, dodawać, usuwać i edytować informacje o dokonanych płatnościach za rezerwacje, wykup oraz opłatę na dalsze lata miejsc na cmentarzu (grobów/nagrobków). - Może edytować informacje o sobie. 5.4 Admin - Może przeglądać, dodawać, usuwać i edytować użytkowników. W szczególności tylko on będzie miał możliwość zmiany ról użytkownikom. - Może przeglądać, dodawać, usuwać i edytować wszystkie możliwe encje.