Changes between Version 12 and Version 13 of RelationalModel


Ignore:
Timestamp:
04/20/26 00:27:26 (13 days ago)
Author:
231088
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalModel

    v12 v13  
    1313   - `Offer` претставува одговор од изведувач на конкретен request и содржи предложена цена, траење и дополнителни трошоци.
    1414   - `Booking` се креира само кога една понуда е прифатена.
    15 - Важно е што Booking содржи само offer_id како foreign key, наместо директно да ги содржи request_id, client_id и bookable_id. Ова е направено со цел да се избегне редундантност, бидејќи сите овие информации можат индиректно да се добијат преку Offer.
     15- Важно е што `Booking` содржи само offer_id како foreign key, наместо директно да ги содржи request_id, client_id и bookable_id. Ова е направено со цел да се избегне редундантност, бидејќи сите овие информации можат индиректно да се добијат преку Offer.
     16- '''Овој дизајн овозможува: подобра нормализација, избегнување на дупликати и поедноставна логика при ажурирање.'''
    1617
    1718- Ентитетот `Bookable` е воведен како апстракција за сите типови изведувачи.
     
    1920   - `BandProfile` содржи податоци за бенд
    2021   - `BandMember` овозможува поврзување помеѓу бенд и поединечни артисти
    21  
     22- '''Овој дизајн овозможува: полесно управување со изведувачи, лесно додавање нов тип на изведувач, избегнување на дупли структури.'''
     23
    2224 
    2325- Цените се моделирани преку табелата `PricingRule`, која дефинира основна цена, дополнителни трошоци и услови (тип на настан, траење...)
    2426   - Дополнително, табелата `PriceHistory` се користи за чување на сите промени на цените со текот на времето.
     27- '''Овој дизајн овозможува: следење на историја на цени, анализа на промени, транспарентност во системот.'''
     28
    2529
    2630- Табелата `AvailabilitySlot` служи за дефинирање на достапноста на изведувачите.
    2731   - Секој запис претставува временски интервал (start_datetime – end_datetime) во кој изведувачот е достапен или недостапен.
     32- '''Овој дизајн овозможува: спречување на двојни резервации, проверка на достапност пред креирање на booking, полесно пребарување.'''
     33
    2834
    2935- Локацијата и местото на одржување се моделирани како независни ентитети:
     
    3137   - `Venue` – конкретна локација (сала, клуб ...)
    3238   - `VenueType` – тип на место (indoor, outdoor…)
    33 - Табелата `Request` ги референцира овие ентитети преку foreign keys (`location_id`, `venue_id`, `venue_type_id`), со што се избегнува дуплирање на податоци и се овозможува повторна употреба на истите.
     39- Табелата `Request` ги референцира овие ентитети преку foreign keys (location_id, venue_id, venue_type_id`), со што се избегнува дуплирање на податоци и се овозможува повторна употреба на истите.
    3440
    3541- Табелата `Message` овозможува комуникација помеѓу корисниците (клиент и изведувач), при што пораките можат да бидат поврзани со конкретен `Request` или `Booking`.
     42- '''Овој дизајн овозможува: следење на комуникацијата, контекстуална размена на информации, подобро корисничко искуство.'''
     43
    3644
    3745- `Payment` ги чува сите информации за плаќања поврзани со booking.
    3846- `BookingStatusHistory` ги чува сите промени на статусот на резервацијата.
     47- '''Овој дизајн овозможува: следење на финансиски трансакции, историја на статуси (pending, confirmed, cancelled) и подобра контрола.'''
     48
    3949
    4050- Табелата `Review` е поврзана директно со Booking, што значи дека рецензија може да постои само за завршена резервација.
     51- '''Овој дизајн овозможува: валидност на оценките, спречување на злоупотреба, реални и релевантни рецензии.'''