'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.
|
||||
|
||||
**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