'details'

This commit is contained in:
Krzysztof Wołowiec 2019-06-15 00:24:38 +02:00
parent 853de332c7
commit 9c4d5311e9
2 changed files with 19 additions and 5 deletions

View File

@ -13,7 +13,6 @@ Projekt bazy danych dla firmy, która dostarcza i prowadzi samoobsługowe wypoż
![](erd.png) ![](erd.png)
![](erd2.png) ![](erd2.png)
## Model relacyjny (RM) ## Model relacyjny (RM)
@ -30,4 +29,19 @@ Oznaczenia: <u>klucz podstawowy</u>, *klucz obcy*
![](baza-schemat.PNG) ![](baza-schemat.PNG)
## Opis funkcjonalności ## Opis funkcjonalności
* * rejestrowanie/dodawanie/modyfikacja danych użytkowników,
* gromadzenie danych o wypożyczeniach z danej stacji w określonym czasie,
* możliwość określenia liczby wypożyczonych rowerów w czasie rzeczywistym,
* identyfikacja rowerów, promujących określoną markę,
* identyfikacja stacji zapełnionych lub pustych, celem określenia zapotrzebowanie na powiększenie stacji, dostarczenie dodatkowych rowerów i inne działania,
* możliwość określenia rowerów uszkodzonych i zaginionych.
## Logika bazy:
* jeden użytkownik w określonym momencie może wypożyczyć więcej niż jeden rower,
* imiona, nazwiska i login muszą zaczynać się z liter A-Z,
* mail musi zawierać wewnątrz znak '@' ,
* suma liczby zajętych i wolnych miejsc na stacji musi być równa liczbie miejsc na tej stacji,
* daty 'od' muszą być wcześniejsze niż daty 'do'
* stacja może mieć jeden spośród statusów: 'nieczynna', 'pełna', 'pusta', 'niepełna',
* rower może mieć jeden spośród statusów: 'sprawny','uszkodzony', 'w naprawie', 'zagubiony',
* konto użytkownika może być: aktywne, nieaktywne i zawieszone.

View File

@ -19,9 +19,9 @@ CREATE TABLE Uzytkownicy
ostatnia_aktywnosc datetime, ostatnia_aktywnosc datetime,
saldo_konta money NOT NULL DEFAULT 0, saldo_konta money NOT NULL DEFAULT 0,
status_konta varchar(16) NOT NULL, status_konta varchar(16) NOT NULL,
CONSTRAINT ck_dane_osobowe_litery CHECK ((nazwisko LIKE '[A-Z]%') AND (imie LIKE '[A-Z]%')), CONSTRAINT ck_dane_osobowe_litery CHECK ((nazwisko LIKE '[A-Z]%') AND (imie LIKE '[A-Z]%') AND (login LIKE '[A-Z]%')),
CONSTRAINT ck_mail CHECK (email LIKE '%@%'), CONSTRAINT ck_mail CHECK (email LIKE '%@%'),
CONSTRAINT ck_status_konta CHECK (email LIKE '%@%') CONSTRAINT ck_status_konta CHECK (status_konta IN ('zawieszone', 'aktywe', 'nieaktywne')
); );
@ -47,7 +47,7 @@ CREATE TABLE Stacje
ulica varchar(64), ulica varchar(64),
stan varchar(16), stan varchar(16),
CONSTRAINT ck_stan_stacji CHECK (stan IN ('nieczynna', 'pełna', 'pusta', 'niepełna')), CONSTRAINT ck_stan_stacji CHECK (stan IN ('nieczynna', 'pełna', 'pusta', 'niepełna')),
CONSTRAINT ck_miejsca CHECK (miejsca_wolne + miejsca_zajete <= miejsca) CONSTRAINT ck_miejsca CHECK (miejsca_wolne + miejsca_zajete = miejsca)
); );
CREATE TABLE Wypozyczenia CREATE TABLE Wypozyczenia