| Version 1 (modified by , 2 weeks ago) ( diff ) |
|---|
Релационен Модел
Релационен дијаграм
Дијаграмот е изработен во Visual Paradigm (десктоп верзија) и прикажува целосен релационен модел на базата на податоци на DriveNet со 29 табели.
Описна документација и аргументација
users, drivers, passengers — одвоени ентитети со заедничка база
Корисниците се моделирани преку централна табела users која ги содржи заедничките атрибути (име, е-пошта, телефон, аватар итн.). Возачите и патниците се одвоени табели (drivers, passengers) со специфични атрибути за секоја улога — на пример, max_detour_percent е атрибут само на возачот, бидејќи единствено возачот одлучува колкаво отстапување на рутата е прифатливо. Еден корисник може да биде и возач и патник истовремено.
vehicles, manufacturers, vehicle_models — хиерархија на возила
Возилата се поврзани со производителите (manufacturers) и моделите (vehicle_models) преку посебни табели. Ова овозможува нормализирано чување на информациите за возилата и спречува дупликати на имиња на производители и модели.
vehicle_ownership — врска возач-возило
Поврзувачката табела vehicle_ownership ја моделира врската помеѓу возачите и нивните возила, при што еден возач може да поседува повеќе возила.
routes, route_stops — рути со меѓустаници
Рутата (routes) ги дефинира почетната и крајната точка, датумот и часот, бројот на слободни места и цената по километар. Меѓустаниците се чуваат одделно во табелата route_stops со редоследен број, што овозможува флексибилно дефинирање на рути со произволен број на застанувања.
bookings — резервации по сегмент
Резервацијата (bookings) е поврзана со конкретен патник, рута и почетна/крајна меѓустаница. Ова овозможува патникот да резервира само дел од рутата. Табелата содржи временски марки за потврда на качување (pickup_confirmed_at) и слегување (dropoff_confirmed_at).
fare_splits — алгоритам за поделба на трошоци
Бидејќи апликацијата работи исклучиво со готовинско плаќање, не постои табела за трансакции. Наместо тоа, fare_splits ги чува пресметаните износи кои секој патник треба да ги плати на возачот, врз основа на поминатата дистанца.
ratings — оценување меѓу корисници
Табелата ratings овозможува оценување меѓу учесниците по завршено патување. Дефиниран е CHECK constraint кој обезбедува дека корисникот не може да се оцени самиот себеси (reviewer_user_id != reviewee_user_id).
notifications — известувања
Табелата notifications чува известувања за корисниците (нови резервации, потврди, откажувања итн.) со статус на прочитаност.
Attachments (3)
- RelationalModel.jpg (249.3 KB ) - added by 2 weeks ago.
- RelationalModel.zip (60.3 KB ) - added by 13 days ago.
- RelationalModel-drive-net.svg (481.4 KB ) - added by 11 days ago.
Download all attachments as: .zip

