'Dodane-pliki,modyf-readme'
This commit is contained in:
parent
89cde8daaf
commit
1c6e831db5
23
README.md
23
README.md
@ -6,7 +6,28 @@
|
|||||||
|
|
||||||
Projekt bazy danych dla firmy, która dostarcza i prowadzi samoobsługowe wypożyczalnie rowerów miejskich, będące alternatywą dla komunikacji publicznej.
|
Projekt bazy danych dla firmy, która dostarcza i prowadzi samoobsługowe wypożyczalnie rowerów miejskich, będące alternatywą dla komunikacji publicznej.
|
||||||
|
|
||||||
**Celem** bazy danych jest wsparcie w organizowaniu usług wypożyczania rowerów miejskich, poprzez rejestrowanie wypożyczeń i zwrotów, kontrolę stanu poszczególnych stacji rowerowych i nadzorowanie systemu dostarczania i serwisowania rowerów.
|
**Celem** bazy danych jest wsparcie organizowania usług wypożyczania rowerów miejskich, poprzez rejestrowanie wypożyczeń i zwrotów, kontrolę stanu poszczególnych stacji rowerowych i rejestrowanie aktywności marketingowej względem rowerów.
|
||||||
|
|
||||||
|
|
||||||
|
## Diagram związków encji (ERD)
|
||||||
|
|
||||||
|
!()[erd.png]
|
||||||
|
|
||||||
|
|
||||||
|
!()[erd2.png]
|
||||||
|
|
||||||
|
## Model relacyjny (RM)
|
||||||
|
|
||||||
|
Oznaczenia: <u>klucz podstawowy</u>, *klucz obcy*
|
||||||
|
1. Uzytkownicy: <u>UID</u>, login, imie, nazwisko, email, data_od, ostatnia_aktywnosc, saldo_konta, status_konta
|
||||||
|
2. Rowery: <u>RID</u>, typ, stan
|
||||||
|
3. Stacje: <u>SID</u>, miejsca, miejsca_zajete, miejsca_wolne, dl_geogr, szer_geogr, osiedle, ulica, stan
|
||||||
|
4. Stan_stacji: *stacja*, *rower*, data_dodania
|
||||||
|
5. Wypozyczenia; <u>WID</u>, *uzytkownik*, *rower*, *stacja_wyp*, godzina_wyp, *stacja_zwrotu*, godzina zwrotu, status
|
||||||
|
6. Kampanie: <u>nazwa</u>, firma, rowery, od, do
|
||||||
|
7. Reklamy: *RID*, *reklama*, od, do
|
||||||
|
|
||||||
|
!()[baza-schemat.PNG]
|
||||||
|
|
||||||
|
## Opis funkcjonalności
|
||||||
|
*
|
BIN
baza-schemat.PNG
Normal file
BIN
baza-schemat.PNG
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
91
create_db.sql
Normal file
91
create_db.sql
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
USE master;
|
||||||
|
CREATE DATABASE Rowerownia;
|
||||||
|
GO
|
||||||
|
|
||||||
|
USE Rowerownia;
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET LANGUAGE polski;
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE TABLE Uzytkownicy
|
||||||
|
(
|
||||||
|
UID int PRIMARY KEY,
|
||||||
|
login varchar(16) UNIQUE NOT NULL,
|
||||||
|
imie varchar(32) NOT NULL,
|
||||||
|
nazwisko varchar(64) NOT NULL,
|
||||||
|
email varchar(64) UNIQUE NOT NULL,
|
||||||
|
data_od datetime NOT NULL,
|
||||||
|
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_mail CHECK (email LIKE '%@%'),
|
||||||
|
CONSTRAINT ck_status_konta CHECK (email LIKE '%@%')
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE Rowery
|
||||||
|
(
|
||||||
|
RID int PRIMARY KEY,
|
||||||
|
typ INT NOT NULL,
|
||||||
|
stan varchar(32) NOT NULL DEFAULT('sprawny'),
|
||||||
|
CONSTRAINT ck_bike_type CHECK (typ < 4), -- zalezne od liczby typow rowerow
|
||||||
|
CONSTRAINT ck_stan_roweru CHECK (stan in ('sprawny','uszkodzony', 'w naprawie', 'zagubiony'))
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE Stacje
|
||||||
|
(
|
||||||
|
SID int PRIMARY KEY,
|
||||||
|
miejsca int NOT NULL,
|
||||||
|
miejsca_zajete int NOT NULL,
|
||||||
|
miejsca_wolne int NOT NULL,
|
||||||
|
dl_geogr float,
|
||||||
|
szer_geogr float,
|
||||||
|
osiedle varchar(64),
|
||||||
|
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)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Wypozyczenia
|
||||||
|
(
|
||||||
|
WID int PRIMARY KEY,
|
||||||
|
uzytkownik int FOREIGN KEY REFERENCES Uzytkownicy(UID),
|
||||||
|
rower int FOREIGN KEY REFERENCES Rowery(RID),
|
||||||
|
stacja_wyp int FOREIGN KEY REFERENCES Stacje(SID),
|
||||||
|
godzina_wyp datetime NOT NULL,
|
||||||
|
stacja_zwrotu int FOREIGN KEY REFERENCES Stacje(SID),
|
||||||
|
godzina_zwrotu datetime,
|
||||||
|
status varchar(32),
|
||||||
|
CONSTRAINT ck_status CHECK (status IN ('zakończone', 'aktywne'))
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Stan_stacji
|
||||||
|
(
|
||||||
|
stacja int FOREIGN KEY REFERENCES Stacje(SID),
|
||||||
|
rower int FOREIGN KEY REFERENCES Rowery(RID),
|
||||||
|
data_dodania datetime
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Kampanie
|
||||||
|
(
|
||||||
|
nazwa varchar(64) PRIMARY KEY,
|
||||||
|
firma varchar(64) NOT NULL,
|
||||||
|
rowery int, -- liczba rowerow
|
||||||
|
od datetime,
|
||||||
|
do datetime,
|
||||||
|
CONSTRAINT ck_date CHECK(od < do)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Reklamy
|
||||||
|
(
|
||||||
|
RID int FOREIGN KEY REFERENCES Rowery(RID),
|
||||||
|
reklama varchar(64) FOREIGN KEY REFERENCES Kampanie(nazwa),
|
||||||
|
od datetime,
|
||||||
|
do datetime,
|
||||||
|
CONSTRAINT ck_data CHECK(od < do)
|
||||||
|
);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user