Changes between Version 18 and Version 19 of ERModel


Ignore:
Timestamp:
11/17/22 15:42:39 (19 months ago)
Author:
192007
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ERModel

    v18 v19  
    11== ''ЕР дијаграм''
    22
    3 [[Image(ERmodel_v2.jpg)]]
     3[[Image(ERmodel_v3.png)]]
    44
    55== ''Податочни побарувања''
    66**Ентитети**
    77
    8 1.Users - ентитет со кој се претставуваат корисниците во системот
     81. Users - ентитет со кој се претставуваат корисниците во системот
    99
    1010* user_id - нумерички тип (примарен клуч кој што е serial)
     
    1919* modified_on - датум (datetime) (nullable)
    2020
    21 2.Administrators - ентитет кој ги дефинира администраторите (корисниците кои ги имаат сите привилегии)
     212. Administrators - ентитет кој ги дефинира администраторите (корисниците кои ги имаат сите привилегии)
    2222* ги наследува сите атрибути од users ентитетот и нема дополнителни атрибути
    2323
    24 3.Clients - ентитет кој ги дефинира корисниците регистрирани како клиенти
     243. Clients - ентитет кој ги дефинира корисниците регистрирани како клиенти
    2525* ги наследува сите атрибути од Users ентитетот и има дополнителен атрибут
    2626* address - текстуален тип (nullable)
    2727
    28 4.Business_Users - ентитет кој ги дефинира бизнис корисниците
     284. Business_Users - ентитет кој ги дефинира бизнис корисниците
    2929* ги наследува сите атрибути од users ентитетот и нема дополнителни атрибути
    3030
    31 5.Delivery_Men - ентитет кој ги дефинира доставувачите на автомобили
     315. Delivery_Men - ентитет кој ги дефинира доставувачите на автомобили
    3232* ги наследува сите атрибути од users ентитетот и
    3333* salary - нумерички тип (задолжителен)
    3434* date_of_employment - датум (задолжителен атрибут)
    3535
    36 6.Companies - ентитет кој ги дефинира rent a car компаниите
     366. Companies - ентитет кој ги дефинира rent a car компаниите
    3737* company_id - нумерички тип (примарен клуч)
    3838* company_name - текстуален тип (задолжителен атрибут и уникатен)
     
    4444* modified_by- датум (datetime) (nullable)
    4545
    46 7.Locations - ентитет кој ги дефинира локациите на компаниите
     467. Locations - ентитет кој ги дефинира локациите на компаниите
    4747* location_id - нумерички тип (примарен клуч и serial)
    4848* company_id - надворешен клуч од Companies.
     
    5151* street_number - нумерички тип (задолжителен атрибут)
    5252
    53 8.Brands
    54 * brand_id - нумерички тип (примарен клуч и serial)
    55 * brand_name - текстуален тип (задолжителен атрибут)
    56 * origin_country - текстуален тип (задолжителен атрибут)
     538. Contracts
     54* signed_date - датум (парцијален клуч)
     55* address - текстуален тип (задолжителен атрибут)
     56* from_date - датум (задолжителен атрибут)
     57* to_date - датум (задолжителен атрибут)
    5758
    58 9.Models
     599. Models
    5960* model_id - нумерички тип (примарен клуч и serial)
    6061* model_name - текстуален тип (задолжителен атрубут)
     
    6768* vehicle_type - текстуален тип (задолжителен атрибут)
    6869
    69 10.Vehicles
     7010. Vehicles
    7071* vehicle_id - нумерички тип (примарен клуч и serial)
    7172* chassis_number - нумерички тип (задолжителен атрибут)
     
    7374* fuel_efficiency - текстуален тип (задолжителен атрибут)
    7475
    75 11.Registrations
     7611. Registrations
    7677* registraion_id - нумерички тип (примаен клуч и serial)
    7778* plate_num - текстуален тип (задолжителен атрибут)
     
    8081* is_available - boolean (задолжителен атрибут)
    8182
    82 12.Payments
     8312. Payments
    8384* payment_id - нумерички тип (примарен клуч и serial)
    8485* date - датум (задолжителен атрибут)
    8586* time - време (задолжителен атрибут)
    8687
    87 13.Payment_Cards
     8813. Payment_Cards
    8889* card_id - нумерички тип (примарен клуч и serial)
    8990* card_number - текстуален тип (задолжителен атрибут)
     
    100101* is_responsible_for - M:N релација помеѓу Delivery Men и Vehicles. Еден доставувач е одговорен за повеќе возила и за едно возило се одговорни повеќе доставувачи.
    101102* delivered_car_to - M:N релација помеѓу Delivery Men и Clients. На еден клиент автомобилот може да му го достават повеќе доставувачи, еден доставувач може да им го достави автомобилот на повеќе клиенти.
    102 * is_a - 1:N релација помеѓу Brands и Vehicles. Едно возило е само од еден бренд, еден бренд има повеќе возила.
    103 * is_part_of - 1:N релација помеѓу Brands и Models . Еден бренд има повеќе модели, еден модел е произведуван само до еден бренд.
    104 * has - 1:1 релација помеѓу Vehicles и Registrations. Едно возило има само една регистрација, една регистрација му припаѓа само на едно возило.
     103* signed_by - 1:N релација помеѓу Clients и Contracts. Еден корисник може да потпише (склучи) повеќе договори додека еден договор се склучува само со еден корисник.
     104* paid_with - 1:N релација помеѓу Payment_Cards и Payments. Со една картичка може да бидат извршени повеќе плаќања, едно плаќање се извршува само со една картичка, при тоа одеднаш се плаќа целата сума (нема рати).
     105* is_a - 1:N релација помеѓу Models и Vehicles. Едно возило е само од еден модел, еден модел има повеќе возила.
     106* has - 1:1 релација помеѓу Vehicles и Registrations. Едно возило има само една регистрација, една регистрација му припаѓа само на едно возило. Секое возило мора да има регистрација.
    105107* owns - 1:N релација помеѓу Clients и Payment Cards. Еден корисник може да поседува повеќе платежни картички, додека една картичка му припаѓа само на еден корисник.
    106 * rents - 1:N релација помеѓу Clients и Vehicles. Еден корисник може да изнајми повеќе возила, едно возило може да биде изјанмено само од еден клиент во даден момент.
     108* for_renting - 1:N релација помеѓу Vehicles и Contracts. Со еден договор се позајмува едно возило а за едно возило може да бидат склучени повеќе договори.
    107109* made - 1:N релација помеѓу Clients и Payments. Еден клиент може да изврши повеќе плаќања, а едно плаќање е направено само од еден клиент.
    108110* verified_by - 1:N релација помеѓу Adiminstrators и Companies. Еден администратор може да верификува повеќе компании, една компанија е верификувана од еден администратор.
     
    111113**[https://develop.finki.ukim.mk/projects/OCRent/attachment/wiki/ERModel/ERmodel_v1.jpg "1. Верзија 1"]** - Ни беше забележано од демонстраторот дека ни фали релација помеѓу компанија и администратор. Brands и Models не треба да бидат слаби ентитети. Кардиналноста на works_for релацијата треба да биде обратно. Да додадеме id-ја на некои ентитети каде што фалеше.
    112114
    113 **[https://develop.finki.ukim.mk/projects/OCRent/attachment/wiki/ERModel/ERmodel_v2.jpg "2. Верзија 2"]**
     115**[https://develop.finki.ukim.mk/projects/OCRent/attachment/wiki/ERModel/ERmodel_v2.jpg "2. Верзија 2"]** - По сугестија на професорот ентитетите Models, Locations и Payments ги направивме повторно слаби ентитети. Исто така ни беше забележано дека изнајмувањето на автомобили треба да оди преку нов ентитет Contracts а не преку Clients, и сите информации во врска со изнајмувањето да бидат чувани во договорот. Ентитетот Brands го избришавме и решивме тој податок да го чуваме како атрибут на Vehicles.
     116
     117**[https://develop.finki.ukim.mk/projects/OCRent/attachment/wiki/ERModel/ERmodel_v3.jpg "3. Верзија 3"]**