wiki:ERModel

Актуелна верзија

Дијаграм

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

Ентитети

  • Admin: Како што самото име кажува Админот ке биде ентитет кој ќе се креира директно во базата на податоци и ке има само еден. Тој ќе биде задолжен за одобрување на Возачот (Driver) профилите.
  • Кандидат клучеви: Admin_Id, специјално креиран атрибут кој што ќе ни претставува клуч во базата со цел конзистентност и едноставност.
  • Листа атрибути на ентитетот:
    1. Name – Текстуален тип на податок, задолжително поле.
    2. Surname – Текстуален тип на податок, задолжително поле.
    3. Email – Текстуален тип на податок, задолжително поле кое мора да е во форма на xxxxxx@…
    4. Password – Текстуален тип на податок, заполжително поле, мора да има минимум 8 карактери, 1 специјален карактер и 1 цифра.
  • Driver: Овој ентитет ке ги чува податоците за сите возачи што ги има компанијата.
  • Кандидат клучеви: Driver_Id, специјално креиран атрибут кој што ќе ни претставува клуч во базата со цел конзистентност и едноставност.
  • Листа атрибути на ентитетот:
    1. Name – Текстуален тип на податок, задолжително поле.
    2. Surname – Текстуален тип на податок, задолжително поле.
    3. Email – Текстуален тип на податок, задолжително поле кое мора да е во форма на xxxxxx@…
    4. Password – Текстуален тип на податок, заполжително поле, мора да има минимум 8 карактери, 1 специјален карактер и 1 цифра.
    5. Profile_picture – Слика која ќе се чува како BLOB тип на податок и ќе претставува профилна фотографија на возачот, не е задолжителна. Сите слики се зачувуваат во 300x500 големина.
    6. Price_per_km – Нумерички тип на податок, задолжително поле. Секој возач си има своја цена за тоа колку кошта превозот по изминат километар.
    7. Status – Булеан тип на податок, најпрвин поставен на Слободен, потоа при секое возење ќе се сетира автоматски на Зафатен и обратно.
    8. isApproved – булеан тип на податок, најпрвин поставен на false, доколку админот го одобри профилот на возачот, тогаш станува true.
    9. Grade - Нумерички тип на податок и е просек од оценките на патувањата за тој возач
    10. Num_grades - Нумерички тип на податок што претставува бројот на оцени што ги има добиено возачот.
    11. Level - Текстуален тип на податок, што ни е предифинирано и може да биде Beginner, Advanced, Expert.

  • Passenger: Вистинскиот корисник на апликацијата, патникот. Овој ентитет ни ги чува податоците за сите патници кој што ја користат апликацијата.
  • Кандидат клучеви: Passenger_Id, специјално креиран атрибут кој што ќе ни претставува клуч во базата со цел конзистентност и едноставност.
  • Листа атрибути на ентитетот:
    1. Name – Текстуален тип на податок, задолжително поле.
    2. Surname – Текстуален тип на податок, задолжително поле.
    3. Email – Текстуален тип на податок, задолжително поле кое мора да е во форма на xxxxxx@…
    4. Password – Текстуален тип на податок, заполжително поле, мора да има минимум 8 карактери, 1 специјален карактер и 1 цифра.
  • Car: Овој ентитет ке ни служи за чување на инфомациите за сите автомобили кој што ги користат возачите.
  • Кандидат клучеви: Car_Id, специјално креиран атрибут кој што ќе ни претставува клуч во базата со цел конзистентност и едноставност. Друга идеја беше да се користи license_plate атрибутот како примарен клуч, но со цел да останеме конзистенти во сите атрибути и полесно имплементирање на апликацијата, ќе користиме специјален Car_Id.
  • Листа атрибути на ентитетот:
    1. License_plate – Текстуален тип на податок, задолжително поле, мора да е во формат на XX-YYYY-XX, или XX-YYY-XX, каде X е буква, Y е цифра.
    2. Тype – Мултивредностен атрибут кој што се состои од Make (Текстуално поле, марка на автомобил, задолжително) Model (Текстуално поле, модел на автомобил, задолжително), Year(Нумеричко поле, година на автомобил).
  • Drive: Овој ентитет ќе ни служи за зачувување на потребни информации за сите патувања на патниците со возачите.
  • Кандидат клучеви: Drive_Id, специјално креиран атрибут кој што ќе ни претставува клуч во базата со цел конзистентност и едноставност.
  • Листа атрибути на ентитетот:
    1. Status – Текстуален тип на податок, задолжително поле кое што ни покажува дали ова патување е завршено, побарано од страна на некој патник, потврдено од возач или комплетирано.
    2. Km_traveled – Нумерички тип на податок, задолжително поле што ни означува колку километри се извозени за одредено патување.
    3. Start_Time – Датум-време тип на податок, ни го означува времето кога некое патување има започнато.
    4. End_Time – Датум-време тип на податок, ни го означува времето кога некое патување има завршено.
    5. Grade – Децимален тип на податок, ни ја означува оценката со која патниците го оценуваат возењето.
    6. Destination_coordinates – Композитен тип на податок составен од географска должина и географска широчина и ни ја претставува дестинацијата на патникот.
  • Payment: Овој ентитет ќе ги зачувува сите наплати од возачите на патниците.
  • Кандидат клучеви: Payment_Id, специјално креиран атрибут кој што ќе ни претставува клуч во базата со цел конзистентност и едноставност.
  • Листа атрибути на ентитетот:
    1. Sum_payed – Нумерички тип на податок, се пресметува од Km_traveled*Price_per_km.
    2. Driver_tip_sum - Нумерички тип на податок, колку бакшиш сака да му остави патникот на возачот.
  • Request: Овој ентитет ќе служи за креирање на барање а воедно и Drive кое ќе биде поврзано со ова барање. Тоа може да биде за некој точно одреден возач или пак за најблиските возачи
  • Кандидат клучеви: Request_Id, специјално креиран атрибут кој што ќе ни претставува клуч во базата со цел конзистентност и едноставност.
  • Листа атрибути на ентитетот:
    1. City_address – Тексуален тип на податок, градот во адресата.
    2. Street_address – Тексуален тип на податок, улицата во адресата.
    3. Number_address – Нумерички тип на податок, бројот во адресата.
    4. Pick_up_coordinates – Композитен тип на податок составен од географска должина и географска широчина, означува каде се наоѓа патникот.
    5. Status – Текстуален тип на податок, задолжително поле кое што ни покажува дали ова барање прифатено

Релации

  • Approve-Account: 1:N релација помеѓу Admin и Driver ентитетите и ни го претставува одобрувањето на возачките профили. Admin ентитетот е со делумно учество во релацијата додека Driver е со целосно учество. Во апликацијата ке имаме само еден админ профил кој ќе се користи за одобрување на сите возачи кој сакаат да станат дел од компанијата.
  • Confirm: 1:N релација помеѓу Driver и Request и го претставува потврдувањето на барањето за патувањe од страна на возачите. Driver и Request се со делумно учество во релацијата. За секое посебно барање имаме точно еден возач.
  • Choose_Driver: 1:N релација помеѓу Driver и Request и го претставува незадолжителното избирање на кој возач сакаме да се испрати барањето. Driver и Request се со делумно учество во релацијата. За секое посебно барање имаме точно еден возач.
  • Executes: 1:N релација помеѓу Driver и Drive и го претставува извршувањето на патувањe од страна на возачите. Driver е со делумно учество во релацијата додека Request е со целосно учество во релацијата. За секое посебно патување имаме точно еден возач.
  • Make: 1:N релација помеѓу Passenger и Request и го претставува креирањето на барање од страна на патниците. Passenger е со делумно учество во релацијата додека Request е со целосно учество. Еден патник може да креира повеќе барања, но само едно по едно.
  • For: 1:1 релација помеѓу Drive и Request и го претставува креирањето на патување за секое барање. Request е со делумно учество во релацијата додека Drive е со целосно учество. За секое посебно барање имаме точно едно патување.
  • Passenger_pays: 1:N релација помеѓу Passenger и Payment и ни преставува белешка за тоа кој патник го платил кое патување. Drive и Request се со целосно учество во релацијата. Едно барање може да има точно едно патување.
  • Pays: 1:1 релација помеѓу Drive и Payment и го претставува плаќањето на превозот од страна на патниците. И Drive и Payment се со целосно учество во релацијата. За секое патување посебно имаме точно една наплата.
  • Drives: 1:1 релација помеѓу Driveр и Car и ни претставува кој возач каков автомобил вози. Driver е со делумно учество во релацијата додека Car e со целосно учество. Секој возач вози само еден автомобил.
  • Used: 1:1 релација помеѓу Drive и Car и ни претставува каков автомобил се користи при секое возење. Drive е со целосно учество во релацијата додека Car e со делумно учество. Секое патување се извршува со точно еден автомобил.

Историјат

Првичната верзија на ЕР дијаграмот.

Направени неколку промени на лабораториски вежби.

Променети атрибутите од ентитетот Driver во Request релацијата за да ги задоволат барањата за повеќе патници во еден Drive.

После лабораториски вежби направена уште една промена со што останува само еден патник, бидејќи има премногу компликации.

Финална одобрена верзија после консултации.

Додаден уште еден атрибут во drive за дестинациската адреса, односно координати.

Додаден атрибут во payment табелата за бакшиш на возачите.

Last modified 15 months ago Last modified on 03/10/23 14:02:23

Attachments (14)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.