wiki:ERModel

Version 21 (modified by 192007, 19 months ago) ( diff )

--

ЕР дијаграм

No image "ERmodel_v3.png" attached to ERModel

Податочни побарувања

Ентитети

  1. Users - ентитет со кој се претставуваат корисниците во системот
    • user_id - нумерички тип (примарен клуч кој што е serial)
    • email - текстуален тип (задолжителен атрибут и уникатен)
    • username - текстуален тип (задолжителен атрибут и уникатен)
      • username беше кандидат за примарен клуч но поради тоа што е текстуално поле ја успорува базата и може да биде променливо.
    • first_name - текстуален тип (задолжителен атрибут)
    • last_name - текстуален тип (задолжителен атрибут)
    • full_name - текстуален тип (изведен атрибут)
    • password - текстуален тип (задолжителен атрибут)
    • created_on - датум (datetime) (задолжителен атрибут)
    • modified_on - датум (datetime) (nullable)
  1. Administrators - ентитет кој ги дефинира администраторите (корисниците кои ги имаат сите привилегии)
    • ги наследува сите атрибути од users ентитетот и нема дополнителни атрибути
  1. Clients - ентитет кој ги дефинира корисниците регистрирани како клиенти
    • ги наследува сите атрибути од Users ентитетот и има дополнителен атрибут
  1. Business_Users - ентитет кој ги дефинира бизнис корисниците
    • ги наследува сите атрибути од users ентитетот и нема дополнителни атрибути
  1. Delivery_Men - ентитет кој ги дефинира доставувачите на автомобили
    • ги наследува сите атрибути од users ентитетот и
    • salary - нумерички тип (задолжителен)
    • date_of_employment - датум (задолжителен атрибут)
  1. 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)
  1. Locations - ентитет кој ги дефинира локациите на компаниите
    • location_id - нумерички тип (примарен клуч и serial)
    • company_id - надворешен клуч од Companies.
    • city - текстуален тип (задолжителен атрибут)
    • street - текстуален тип (задолжителен атрибут)
    • street_number - нумерички тип (задолжителен атрибут)
  1. Contracts
    • signed_date - датум (парцијален клуч)
    • address - текстуален тип (задолжителен атрибут)
    • from_date - датум (задолжителен атрибут)
    • to_date - датум (задолжителен атрибут)
  1. Models
    • model_id - нумерички тип (примарен клуч и serial)
    • model_name - текстуален тип (задолжителен атрубут)
    • color - текстуален тип (задолжителен атрубут)
    • year - нумерички тип (задолжителен атрубут)
    • num_of_seats - нумерички тип (задолжителен атрубут)
    • num_of_doors - нумерички тип (задолжителен атрубут)
    • fuel - текстуален тип (задолжителен атрубут)
    • transmission - текстуален тип (задолжителен атрубут)
    • vehicle_type - текстуален тип (задолжителен атрибут)
  1. Vehicles
    • vehicle_id - нумерички тип (примарен клуч и serial)
    • chassis_number - нумерички тип (задолжителен атрибут)
    • vehicle_type - текстуален тип (задолжителен атрибут)
    • fuel_efficiency - текстуален тип (задолжителен атрибут)
  1. Registrations
    • registraion_id - нумерички тип (примаен клуч и serial)
    • plate_num - текстуален тип (задолжителен атрибут)
    • registered_on - датум (задолжителен атрибут)
    • valid_thru - датум (задолжителен атрибут)
    • is_available - boolean (задолжителен атрибут)
  1. Payments
    • payment_id - нумерички тип (примарен клуч и serial)
    • date - датум (задолжителен атрибут)
    • time - време (задолжителен атрибут)
  1. Payment_Cards
    • card_id - нумерички тип (примарен клуч и serial)
    • 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 релација помеѓу Companies и Delivery Men. Во една компанија се вработени повеќе доставувачи, еден доставувач работи само за една компанија.
  • offers_for_rent - 1:N релација помеѓу Companies и Vehicles. Една компанија има повеќе возила за изнајмување, а едно возило го изнајмува само една компанија.
  • is_responsible_for - M:N релација помеѓу Delivery Men и Vehicles. Еден доставувач е одговорен за повеќе возила и за едно возило се одговорни повеќе доставувачи.
  • delivered_car_to - M:N релација помеѓу Delivery Men и Clients. На еден клиент автомобилот може да му го достават повеќе доставувачи, еден доставувач може да им го достави автомобилот на повеќе клиенти.
  • signed_by - 1:N релација помеѓу Clients и Contracts. Еден корисник може да потпише (склучи) повеќе договори додека еден договор се склучува само со еден корисник.
  • paid_with - 1:N релација помеѓу Payment_Cards и Payments. Со една картичка може да бидат извршени повеќе плаќања, едно плаќање се извршува само со една картичка, при тоа одеднаш се плаќа целата сума (нема рати).
  • is_a - 1:N релација помеѓу Models и Vehicles. Едно возило е само од еден модел, еден модел има повеќе возила.
  • has - 1:1 релација помеѓу Vehicles и Registrations. Едно возило има само една регистрација, една регистрација му припаѓа само на едно возило. Секое возило мора да има регистрација.
  • owns - 1:N релација помеѓу Clients и Payment Cards. Еден корисник може да поседува повеќе платежни картички, додека една картичка му припаѓа само на еден корисник.
  • for_renting - 1:N релација помеѓу Vehicles и Contracts. Со еден договор се позајмува едно возило а за едно возило може да бидат склучени повеќе договори.
  • made - 1:N релација помеѓу Clients и Payments. Еден клиент може да изврши повеќе плаќања, а едно плаќање е направено само од еден клиент.
  • verified_by - 1:N релација помеѓу Adiminstrators и Companies. Еден администратор може да верификува повеќе компании, една компанија е верификувана од еден администратор.

Историјат

1. Верзија 1 - Ни беше забележано од демонстраторот дека ни фали релација помеѓу компанија и администратор. Brands и Models не треба да бидат слаби ентитети. Кардиналноста на works_for релацијата треба да биде обратно. Да додадеме id-ја на некои ентитети каде што фалеше.

2. Верзија 2 - По сугестија на професорот ентитетите Models, Locations и Payments ги направивме повторно слаби ентитети. Исто така ни беше забележано дека изнајмувањето на автомобили треба да оди преку нов ентитет Contracts а не преку Clients, и сите информации во врска со изнајмувањето да бидат чувани во договорот. Ентитетот Brands го избришавме и решивме тој податок да го чуваме како атрибут на Vehicles.

3. Верзија 3

Attachments (5)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.