Uber ride-hailing database schema

How a ride-hailing app models its data: riders and drivers, vehicles and expiring documents, online sessions, ride requests, dispatch offers that time out, trips as a state machine, GPS pings, itemised fares with surge, and two-way ratings.

Uber Ride Hailing ER diagram

Uber ride-hailing database schema n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 riders idBIGINT emailVARCHAR phoneVARCHAR full_nameVARCHAR default_payment_m…VARCHAR rating_avgNUMERIC rating_countINTEGER created_atTIMESTAMPTZ drivers idBIGINT phoneVARCHAR full_nameVARCHAR licence_numberVARCHAR licence_country_c…CHAR statusVARCHAR background_check_…TIMESTAMPTZ rating_avgNUMERIC rating_countINTEGER payout_account_refVARCHAR home_cityVARCHAR created_atTIMESTAMPTZ vehicles idBIGINT driver_idBIGINT plateVARCHAR country_codeCHAR makeVARCHAR modelVARCHAR colourVARCHAR yearSMALLINT seatsSMALLINT product_tierVARCHAR is_activeBOOLEAN documents idBIGINT driver_idBIGINT vehicle_idBIGINT kindVARCHAR document_refVARCHAR issued_onDATE expires_onDATE statusVARCHAR reviewed_atTIMESTAMPTZ rejection_reasonVARCHAR driver_sessions idBIGINT driver_idBIGINT vehicle_idBIGINT started_atTIMESTAMPTZ ended_atTIMESTAMPTZ start_latitudeNUMERIC start_longitudeNUMERIC cityVARCHAR trips_completedINTEGER earnings_minorINTEGER surge_zones idBIGINT cityVARCHAR codeVARCHAR centroid_latitudeNUMERIC centroid_longitudeNUMERIC radius_metresINTEGER is_activeBOOLEAN surge_multipliers idBIGINT zone_idBIGINT product_tierVARCHAR effective_fromTIMESTAMPTZ effective_toTIMESTAMPTZ multiplierNUMERIC open_requestsINTEGER available_driversINTEGER ride_requests idBIGINT rider_idBIGINT product_tierVARCHAR pickup_latitudeNUMERIC pickup_longitudeNUMERIC pickup_addressVARCHAR dropoff_latitudeNUMERIC dropoff_longitudeNUMERIC dropoff_addressVARCHAR pickup_zone_idBIGINT quoted_surge_mult…NUMERIC quoted_fare_minorINTEGER currency_codeCHAR statusVARCHAR requested_atTIMESTAMPTZ matched_atTIMESTAMPTZ cancelled_atTIMESTAMPTZ dispatch_offers idBIGINT request_idBIGINT driver_idBIGINT session_idBIGINT sequenceSMALLINT offered_atTIMESTAMPTZ expires_atTIMESTAMPTZ responded_atTIMESTAMPTZ statusVARCHAR eta_secondsINTEGER distance_to_picku…INTEGER trips idBIGINT request_idBIGINT rider_idBIGINT driver_idBIGINT vehicle_idBIGINT session_idBIGINT statusVARCHAR accepted_atTIMESTAMPTZ arrived_atTIMESTAMPTZ started_atTIMESTAMPTZ ended_atTIMESTAMPTZ cancelled_atTIMESTAMPTZ cancellation_reas…VARCHAR distance_metresINTEGER duration_secondsINTEGER surge_multiplierNUMERIC fare_total_minorINTEGER currency_codeCHAR driver_earnings_m…INTEGER trip_waypoints idBIGINT trip_idBIGINT sequenceSMALLINT kindVARCHAR latitudeNUMERIC longitudeNUMERIC addressVARCHAR arrived_atTIMESTAMPTZ departed_atTIMESTAMPTZ location_pings idBIGINT driver_idBIGINT trip_idBIGINT recorded_atTIMESTAMPTZ latitudeNUMERIC longitudeNUMERIC speed_mpsNUMERIC heading_degreesSMALLINT accuracy_metresSMALLINT fare_components idBIGINT trip_idBIGINT kindVARCHAR amount_minorINTEGER currency_codeCHAR quantityNUMERIC unit_rate_minorINTEGER taxableBOOLEAN created_atTIMESTAMPTZ ratings idBIGINT trip_idBIGINT directionVARCHAR scoreSMALLINT tagsVARCHAR commentTEXT submitted_atTIMESTAMPTZ

Related database schemas