Changes between Version 12 and Version 13 of RelationalModel
- Timestamp:
- 04/20/26 00:27:26 (13 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
RelationalModel
v12 v13 13 13 - `Offer` претставува одговор од изведувач на конкретен request и содржи предложена цена, траење и дополнителни трошоци. 14 14 - `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 - '''Овој дизајн овозможува: подобра нормализација, избегнување на дупликати и поедноставна логика при ажурирање.''' 16 17 17 18 - Ентитетот `Bookable` е воведен како апстракција за сите типови изведувачи. … … 19 20 - `BandProfile` содржи податоци за бенд 20 21 - `BandMember` овозможува поврзување помеѓу бенд и поединечни артисти 21 22 - '''Овој дизајн овозможува: полесно управување со изведувачи, лесно додавање нов тип на изведувач, избегнување на дупли структури.''' 23 22 24 23 25 - Цените се моделирани преку табелата `PricingRule`, која дефинира основна цена, дополнителни трошоци и услови (тип на настан, траење...) 24 26 - Дополнително, табелата `PriceHistory` се користи за чување на сите промени на цените со текот на времето. 27 - '''Овој дизајн овозможува: следење на историја на цени, анализа на промени, транспарентност во системот.''' 28 25 29 26 30 - Табелата `AvailabilitySlot` служи за дефинирање на достапноста на изведувачите. 27 31 - Секој запис претставува временски интервал (start_datetime – end_datetime) во кој изведувачот е достапен или недостапен. 32 - '''Овој дизајн овозможува: спречување на двојни резервации, проверка на достапност пред креирање на booking, полесно пребарување.''' 33 28 34 29 35 - Локацијата и местото на одржување се моделирани како независни ентитети: … … 31 37 - `Venue` – конкретна локација (сала, клуб ...) 32 38 - `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`), со што се избегнува дуплирање на податоци и се овозможува повторна употреба на истите. 34 40 35 41 - Табелата `Message` овозможува комуникација помеѓу корисниците (клиент и изведувач), при што пораките можат да бидат поврзани со конкретен `Request` или `Booking`. 42 - '''Овој дизајн овозможува: следење на комуникацијата, контекстуална размена на информации, подобро корисничко искуство.''' 43 36 44 37 45 - `Payment` ги чува сите информации за плаќања поврзани со booking. 38 46 - `BookingStatusHistory` ги чува сите промени на статусот на резервацијата. 47 - '''Овој дизајн овозможува: следење на финансиски трансакции, историја на статуси (pending, confirmed, cancelled) и подобра контрола.''' 48 39 49 40 50 - Табелата `Review` е поврзана директно со Booking, што значи дека рецензија може да постои само за завршена резервација. 51 - '''Овој дизајн овозможува: валидност на оценките, спречување на злоупотреба, реални и релевантни рецензии.'''
