wiki:DatabaseCreation

Database Creation

Во овој дел е прикажан процесот на креирање и иницијализација на базата на податоци преку DDL и DML скрипти, како и дефинирање на погледи (views) за поедноставување на одредени пребарувања и прикажување на податоците.

DDL скрипта за креирање на табелите

ddl.sql

Во оваа DDL скрипта се поставени повеќе ограничувања со цел да се спречи внесување невалидни податоци и да се зачува конзистентноста на самиот систем. На пример, кај корисниците се проверува дали email адресите и телефонските броеви се во валиден формат, дали лозинката има минимална должина и дали датумот на раѓање е реален. Слични проверки има и кај компании, возила, регистрации и плаќања, каде што не се дозволени негативни цени, невалидни координати или датуми што логички не се точни.

Дополнително, поставени се ограничувања со кои се осигурува дека:

  • датумот на истекување е секогаш по датумот на издавање,
  • крајното време на возење е по почетното,
  • rating вредностите се во дозволен опсег,
  • секвенците (seqno) се уникатни во рамки на еден ентитет,
  • еден preference може да се однесува или на компанија или на freelance возач, но не на двата истовремено.

DML скрипта за пополнување на табелите

dml.sql

Погледи

views.sql

  • vw_unassigned_requests: Ги прикажува сите барања за превоз кои сe уште немаат добиено понуда (т.е. се во статус pending), заедно со основни информации за клиентот кој го креирал барањето.
  • vw_live_offers_for_customer: Прикажува активни понуди за одредени клиенти, со детали за цената, ETA и податоци за возачот и клиентот за полесна комуникација и следење.
  • vw_available_drivers: Ги враќа возачите кои моментално се достапни за возење, земајќи ги предвид валидноста на возачката дозвола и дали моментално се на смена.
  • customer_payments_ride: Прикажува информации за извршени плаќања од клиенти поврзани со завршени возења, вклучувајќи износ, метод на плаќање и време на завршување на возењето.
  • all_drivers: Прикажува листа на сите возачи без разлика дали се регистрирани како возачи во компанија или како фриленс возачи, заедно со основни кориснички податоци (име, презиме, телефон, email) и ознака дали припаѓаат на компанија (from_company = true) или се фриленс возачи (from_company = false).
  • reports_on_drivers_rides: Прикажува пријави поврзани со возења, заедно со податоци за возачот и возилото, со цел следење на инциденти и проблеми.
  • reviews_on_drivers: Прикажува оценки и коментари за возачите базирани на завршени возења, за анализа на квалитетот на услугата.
  • user_message_driver: Ги прикажува пораките испратени од клиенти до возачи во рамки на конкретно возење, со цел следење на комуникацијата.
  • vw_live_ride_monitor: Обезбедува реален преглед на активни возења, вклучувајќи податоци за клиент, возач, компанија, број на патници и статус на возењето за оперативен мониторинг.
Last modified 2 days ago Last modified on 05/23/26 21:39:42

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.