Version 16 (modified by 2 years ago) ( diff ) | ,
---|
ЕР дијаграм
Податочни побарувања
Ентитети
1.Users - ентитет со кој се претставуваат корисниците во системот
- user_id - нумерички тип (примарен клуч кој што е serial)
- email - текстуален тип (задолжителен атрибут и уникатен)
- username - текстуален тип (задолжителен атрибут и уникатен)
- username беше кандидат за примарен клуч но поради тоа што е текстуално поле ја успорува базата и може да биде променливо.
- first_name - текстуален тип (задолжителен атрибут)
- last_name - текстуален тип (задолжителен атрибут)
- full_name - текстуален тип (изведен атрибут)
- password - текстуален тип (задолжителен атрибут)
- created_on - датум (datetime) (задолжителен атрибут)
- modified_on - датум (datetime) (nullable)
2.Administrators - ентитет кој ги дефинира администраторите (корисниците кои ги имаат сите привилегии)
- ги наследува сите атрибути од users ентитетот и нема дополнителни атрибути
3.Clients - ентитет кој ги дефинира корисниците регистрирани како клиенти
- ги наследува сите атрибути од Users ентитетот и има дополнителен атрибут
- address - текстуален тип (nullable)
4.Business_Usesrs - ентитет кој ги дефинира бизнис корисниците
- ги наследува сите атрибути од users ентитетот и нема дополнителни атрибути
5.Delivery_Men - ентитет кој ги дефинира доставувачите на автомобили
- ги наследува сите атрибути од users ентитетот и
- salary - нумерички тип (задолжителен)
- date_of_employment - датум (задолжителен атрибут)
6.Companies - ентитет кој ги дефинира rent a car компаниите
- company_id - нумерички тип (примарен клуч)
- company_name - текстуален тип (задолжителен атрибут и уникатен)
- company_name беше кандидат за примарен клуч но е текстуално поле.
- comp_email - текстуален тип (задолжителен атрибут и уникатен)
- created_on - датум (datetime) (задолжителен атрибут)
- created_by - датум (datetime) (задолжителен атрибут)
- modified_on - датум (datetime) (nullable)
- modified_by- датум (datetime) (nullable)
7.Locations - ентитет кој ги дефинира локациите на компаниите
- location_id - нумерички тип (примарен клуч и serial)
- company_id - надворешен клуч од Companies.
- city - текстуален тип (задолжителен атрибут)
- street - текстуален тип (задолжителен атрибут)
- street_number - нумерички тип (задолжителен атрибут)
8.Brands
- brand_id - нумерички тип (примарен клуч и serial)
- brand_name - текстуален тип (задолжителен атрибут)
- origin_country - текстуален тип (задолжителен атрибут)
9.Models
- model_id - нумерички тип (примарен клуч и serial)
- model_name - текстуален тип (задолжителен атрубут)
- color - текстуален тип (задолжителен атрубут)
- year - нумерички тип (задолжителен атрубут)
- num_of_seats - нумерички тип (задолжителен атрубут)
- num_of_doors - нумерички тип (задолжителен атрубут)
- fuel - текстуален тип (задолжителен атрубут)
- transmission - текстуален тип (задолжителен атрубут)
- vehicle_type - текстуален тип (задолжителен атрибут)
10.Vehicles
- chassis_number - нумерички тип (примарен клуч)
- vehicle_type - текстуален тип (задолжителен атрибут)
- fuel_efficiency - текстуален тип (задолжителен атрибут)
11.Registrations
- plate_num - текстуален тип (примарен клуч)
- registered_on - датум (задолжителен атрибут)
- valid_thru - датум (задолжителен атрибут)
- is_available - boolean (задолжителен атрибут)
12.Payments
- payment_id - нумерички тип (примарен клуч)
- date - датум (задолжителен атрибут)
- time - време (задолжителен атрибут)
13.Payment_Cards
- card_id - нумерички тип (примарен клуч)
- card_number - текстуален тип (задолжителен атрибут)
- cvc - нумерички тип (задолжителен атрибут)
- valid_thru - датум (задолжителен атрибут)
- holder_name - текстуален тип (задолжителен атрибут)
Релации
- registered_by - 1:N релација помеѓу Business Users и Companies. Еден Business User може да регистрира повеќе компании, а една компанија може да биде регистрирана само од еден корисник. Секоја компанија мора да биде регистрирана.
- is_on - 1:N релација помеѓу Companies и Locations. Една компанија може да има повеќе локации, додека на една локација може да има само една компанија. Секоја компанија мора да има барем една локација.
- is_added_by - 1:N релација помеѓу Business Users и Delivery Men. Еден бизнис корисник може да додаде повеќе доставувачи, а еден доставувач е додаден од само еден бизнис корисник. Секој бизнис корисник мора да има вработено (додадено) барем еден доставувач.
- works_for - 1:N релација помеѓу Delivery Men и Companies. Во една компанија се вработени повеќе доставувачи, еден доставувач работи само за една компанија.
- offers_for_rent - 1:N релација помеѓу Companies и Vehicles. Една компанија има повеќе возила за изнајмување, а едно возило го изнајмува само една компанија.
- is_responsible_for - M:N релација помеѓу Delivery Men и Vehicles. Еден доставувач е одговорен за повеќе возила и за едно возило се одговорни повеќе доставувачи.
- delivered_car_to - M:N релација помеѓу Delivery Men и Clients. На еден клиент автомобилот може да му го достават повеќе доставувачи, еден доставувач може да им го достави автомобилот на повеќе клиенти.
- is_a - 1:N релација помеѓу Brands и Vehicles. Едно возило е само од еден бренд, еден бренд има повеќе возила.
- is_part_of - 1:N релација помеѓу Brands и Models . Еден бренд има повеќе модели, еден модел е произведуван само до еден бренд.
- has - 1:1 релација помеѓу Vehicles и Registrations. Едно возило има само една регистрација, една регистрација му припаѓа само на едно возило.
- owns - 1:N релација помеѓу Clients и Payment Cards. Еден корисник може да поседува повеќе платежни картички, додека една картичка му припаѓа само на еден корисник.
- rents - 1:N релација помеѓу Clients и Vehicles. Еден корисник може да изнајми повеќе возила, едно возило може да биде изјанмено само од еден клиент во даден момент.
- made - 1:N релација помеѓу Clients и Payments. Еден клиент може да изврши повеќе плаќања, а едно плаќање е направено само од еден клиент.
- verified_by - 1:N релација помеѓу Adiminstrators и Companies. Еден администратор може да верификува повеќе компании, една компанија е верификувана од еден администратор.
Историјат
1. Верзија 1 - Ни беше забележано од демонстраторот дека ни фали релација помеѓу компанија и администратор. Brands и Models не треба да бидат слаби ентитети. Кардиналноста на works_for релацијата треба да биде обратно. Да додадеме id-ја на некои ентитети каде што фалеше.
Attachments (5)
- ERmodel_v1.jpg (192.0 KB ) - added by 2 years ago.
- ERmodel_v2.jpg (130.2 KB ) - added by 2 years ago.
- ERmodel_v3.jpg (256.0 KB ) - added by 2 years ago.
- ERmodel_v4.png (230.0 KB ) - added by 2 years ago.
- ERmodel_v5.jpg (151.3 KB ) - added by 2 years ago.
Download all attachments as: .zip