| Version 30 (modified by , 6 days ago) ( diff ) |
|---|
Релационен модел
Релационен дијаграм
На сликата подолу е прикажан деталниот релационен модел на базата на податоци за системот EMS-AMCV, изработен во Visual Paradigm. Моделот е оптимизиран за ефикасно управување со трансакциите и висок интегритет на податоците.
Прилог:
Дескриптивна документација и аргументација
Во овој дел се подетално објаснети специфичните сегменти од моделот кои содржат напредна логика или решенија за специфични бизнис проблеми.
1. Сегмент: Животен циклус на билет и Продажба (Ticket vs. Ticket_Order и Ticket_Order_Item)
- Како и зошто: Моделот прави јасна разделба помеѓу инвентарот на билети за седишта (
Ticket) и реализираната трансакција на купување прекуTicket_OrderиTicket_Order_Item. ТабелатаTicketги содржи сите потенцијални места за еден настан, додекаTicket_Order_Itemе конкретна ставка од нарачката која содржи уникатенqr_codeза секој купен билет. - Аргументација: Оваа структура овозможува прецизна историја на продажба. Кога еден билет ќе се рефундира, неговиот статус во
Ticket(is_available) се враќа во true (слободен) и тој може повторно да се продаде во нова нарачка, додека претходниот запис во ставките од нарачките останува како сметководствен доказ.
2. Сегмент: Динамично ценообразовање и фази (Event_Period)
- Како и зошто: Наместо фиксна цена, воведена е посебна табела
Event_Periodдиректно поврзана со терминот на одржување (Event_Happening). Секој временски период има дефиниран опсег соstart_dateиend_date, како и атрибутprice_discount_percentкој го одредува процентот на попуст во тој период. - Аргументација: Ова овозможува системот автоматски да ги калкулира цените во реално време во зависност од датумот кога корисникот купува билет (на пример, „Early Bird“ со помал процент на попуст кој се зголемува како што се приближува настанот).
3. Сегмент: Хиерархија и Интегритет на локации (Venue -> Section -> Seat)
- Како и зошто: Локациите се моделирани хиерархиски преку Non-Identifying релации со користење на вештачки клучеви. Секое седиште има уникатно
seat_idи преку надворешен клуч е поврзано соsection_id, кое пак на ист начин референцира конvenue_id. - Аргументација: Оваа структура е оптимизирана за работа со големи количини на податоци. Со елиминирање на комплексни композитни клучеви се намалува големината на индексите на диск, се забрзуваат JOIN операциите и се штедат мемориски ресурси, додека интегритетот на физичката локација е целосно загарантиран.
4. Сегмент: Специјализација на ентитети (Inheritance)
- Како и зошто: Користена е специјализација (наследување) на ниво на кориснички профили, каде
Userе базна табела со заедничките атрибути (username,email,password), аAdminиRegular_Userсе подтипови со сопствени специфични улоги и атрибути (какоdate_of_birthкај обичниот корисник). - Аргументација: Ова овозможува строга безбедност и валидација на ниво на база. Администраторите и обичните корисници се автентицираат унифицирано преку базната табела, но нивните улоги и акции (како купување билети и оставање рејтинзи, кои се ексклузивни за
Regular_User) се строго одвоени и заштитени. За логичка поделба на самите настани воведен е и шифрарник прекуEvent_Type.
5. Сегмент: Финансиска безбедност и рефундација (Ticket_Refund и Ticket_Refund_Item)
- Како и зошто: Процесот на рефундација е поделен на
Ticket_Refund(глава на рефундацијата која се врзува со целата нарачка прекуorder_id) иTicket_Refund_Item(ставки кои точно покажуваат кои поединечни карти се рефундирани прекуorder_item_id). - Аргументација: Со оваа грануларна логика се оневозможува системска грешка или манипулација во која за една иста ставка од нарачката (
Ticket_Order_Item) парите би се вратиле повеќе од еднаш. Моделот дозволува парцијално рефундирање (на пример, корисник купува 3 карти, а враќа само 1), со што се обезбедува прецизен финансиски и сметководствен биланс.
Attachments (2)
- RelationalModel-ProjectCode.vpp (1.0 MB ) - added by 5 days ago.
- RelationalModel-ProjectCode.svg (226.7 KB ) - added by 5 days ago.
Download all attachments as: .zip
