| | 16 | === Core transactional domain во airportdb |
| | 17 | |
| | 18 | '''booking''' – централната табела за резервации. Токму тука најчесто се појавуваат concurrency проблеми , бидејќи повеќе корисници можат истовремено да направат booking (или менуваат) на седишта за ист лет. |
| | 19 | |
| | 20 | [[Image(booking table image)]] |
| | 21 | |
| | 22 | '''flight''' - табела што го дефинира летот (од каде до каде, време на поаѓање и пристигнување, авиокомпанија и кој авион го извршува летот). Оваа табела е важна затоа што секоја резервација се врзува за конкретен лет, а промени во летот (на пример reschedule или промена на авион) имаат директно влијание врз валидноста на постоечките резервации. |
| | 23 | |
| | 24 | [[Image(flight table image)]] |
| | 25 | |
| | 26 | '''airplane''' - табела која го носи најважниот капацитетен параметар: capacity. Ова е основата за контролирање на overbooking. Дури и кога различни седишта се резервираат паралелно, системот мора да осигури дека вкупниот број резервации за летот не го надминува капацитетот на авионот кој го извршува летот. |
| | 27 | |
| | 28 | [[Image(airplane table image)]] |
| | 29 | |
| | 30 | Дополнително, постојат и '''поддржувачки табли''' кои се важни за реалистичност и traceability: |
| | 31 | |
| | 32 | * '''passenger''' и '''passengerdetails''' – иако не се директниот извор на concurrency проблемите, тие често учествуваат во транзакции (на пример при креирање нов патник + резервација во една атомска операција). |
| | 33 | * '''flight_log''' – корисна за audit (логирање на историја кој и кога направил промена). Во реални системи audit логиката е критична, особено при debugging на проблеми со конкурентност и при следење на промени во распоредите или атрибутите на летовите. |
| | 34 | |
| | 35 | |