diff --git a/README.md b/README.md index b98ef0d..c680237 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,6 @@ Projekt bazy danych dla firmy, która dostarcza i prowadzi samoobsługowe wypoż ![](erd.png) - ![](erd2.png) ## Model relacyjny (RM) @@ -30,4 +29,19 @@ Oznaczenia: klucz podstawowy, *klucz obcy* ![](baza-schemat.PNG) ## Opis funkcjonalności -* \ No newline at end of file +* 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. \ No newline at end of file diff --git a/create_db.sql b/create_db.sql index f65c921..7f16aed 100644 --- a/create_db.sql +++ b/create_db.sql @@ -19,9 +19,9 @@ CREATE TABLE Uzytkownicy ostatnia_aktywnosc datetime, saldo_konta money NOT NULL DEFAULT 0, 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_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), stan varchar(16), 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