wiki:ERModel

Version 12 (modified by 181085, 19 months ago) ( diff )

--

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

Дијаграм

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

Ентитети

  • 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. Rewards - мултивредносен атрибут составен од Grade кој што е нумерички тип на податок и е просек од оценките на патувањата за тој возач и Num_grades нумерички тип на податок што претставува бројот на оцени што ги има добиено за патувања.
    10. 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. Head_Passenger - Надворешен клуч од Passenger_Id, ни го означува главниот патник на возењето, оној кој што првично го креирал барањето.
    3. Allow_Others - Булеан тип на податок, ни означува дали може други патници да се приклучат на возењето, може да го променува само Head_Passenger.
  • Payment: Овој ентитет ќе ги зачувува сите наплати од возачите на патниците.
  • Кандидат клучеви: Payment_Id, специјално креиран атрибут кој што ќе ни претставува клуч во базата со цел конзистентност и едноставност.
  • Листа атрибути на ентитетот:
    1. Sum_payed – Нумерички тип на податок, изведен атрибут кој што ќе се пресметува од Km_traveled*Price_per_km.

Релации

  • Approve-Account: 1:N релација помеѓу Admin и Driver ентитетите и ни го претставува одобрувањето на возачките профили. Admin ентитетот е со делумно учество во релацијата додека Driver е со целосно учество. Во апликацијата ке имаме само еден админ профил кој ќе се користи за одобрување на сите возачи кој сакаат да станат дел од компанијата.
  • Confirm: 1:N релација помеѓу Driver и Drive и го претставува потврдувањето на патувањата од страна на возачите. Driver е со делумно учество во релацијата додека Drive е со целосно учество. За секое посебно патување имаме точно еден возач, додека еден возач може да изврши повеќе патувања.
  • Request: М:N релација помеѓу Drive и Passenger и го претставува побарувањето на превоз од страна на патниците. Passenger е со делумно учество во релацијата додека Drive е со целосно учество. Многу патници можат да побараат различни патувања. Ќе имаме неколку атрибути во релацијата со цел да се задоволи да може повеќе патници да учествуваат во едно патување.
    1. Km_traveled – Нумерички тип на податок, задолжително поле што ни означува колку километри се извозени за одредено патување.
    2. Destination coordinates – Текстуален тип на податок, задолжително поле кое ни ја претставува дестинацијата на која ќе заврши патувањето.
    3. Pick_up_address – Мултивредносен атрибут кој што ќе ни го означува почетокот на патувањето, има Location Coordinates (координати за од каде ќе почне патувањето) и евентуално Street, City (текстуални полиња), Number (нумеричко поле) за адреса.
    4. Start_Time – Датум-време тип на податок, ни го означува времето кога некое патување има започнато.
    5. End_Time – Датум-време тип на податок, ни го означува времето кога некое патување има завршено.
    6. Grade – Децимален тип на податок, ни ја означува оценката со која патниците го оценуваат возењето.
  • 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.

Attachments (14)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.