= Релационен модел == ЕР Дијаграм [[Image(RelationalModel.svg, 1400px)]] == Дополнителен Опис - Предложениот модел претставува систем за посредување помеѓу клиенти и музички изведувачи, каде што корисниците можат да креираат барања за настани, а изведувачите да одговорат со понуди. Основниот тек на системот е организиран преку следната логика: '''Request → Offer → Booking → Payment → Review''' - Сегмент: Request, Offer и Booking - Табелите `Request, Offer и Booking` го претставуваат основниот процес на резервација. - `Request` ги содржи сите информации за настанот (датум, време, буџет, локација, тип на настан). - `Offer` претставува одговор од изведувач на конкретен request и содржи предложена цена, траење и дополнителни трошоци. - `Booking` се креира само кога една понуда е прифатена. - Важно е што Booking содржи само offer_id како foreign key, наместо директно да ги содржи request_id, client_id и bookable_id. Ова е направено со цел да се избегне редундантност, бидејќи сите овие информации можат индиректно да се добијат преку Offer. - Ентитетот `Bookable` е воведен како апстракција за сите типови изведувачи. - `ArtistProfile` содржи податоци за индивидуален изведувач - `BandProfile` содржи податоци за бенд - `BandMember` овозможува поврзување помеѓу бенд и поединечни артисти - Цените се моделирани преку табелата `PricingRule`, која дефинира основна цена, дополнителни трошоци и услови (тип на настан, траење...) - Дополнително, табелата `PriceHistory` се користи за чување на сите промени на цените со текот на времето.