Changes between Version 64 and Version 65 of AdvancedTopics


Ignore:
Timestamp:
05/22/26 15:22:05 (4 days ago)
Author:
231189
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedTopics

    v64 v65  
    189189- **Усогласеност со Payment преку transaction_date** За да се спречи појавување на еден тикет во две партиции на Payment, во Ticket табелата е додадена колоната payment_transaction_date. На овој начин, Foreign Key кон Payment е составен (composite) клуч (payment_id, transaction_date), кој директно одговара на партицискиот клуч на Payment табелата.
    190190
    191 -**Математичко објаснување на партиционирањето**
    192 ПресметкаБидејќи партициите на Train Trip се поделени по месеци и содржат по ~3,300 возови за една месечна партиција.
    193 
    194 Пресметка на билети по месечна партиција:
    195 
    196 [[Image("Bileti po particija.png",500px)]]
    197 
    198 Тоа значи дека една месечна партиција на Train Trip е преголема за директно пресликување во една партиција на Ticket. За да се добијат партиции од препорачаните ~20,000 редови, секој месец мора логаритамски да се „исече“ на помали парчиња:
    199 
    200 [[Image("particii po mesec.png",500px)]]
    201 
    202 Со тоа, опсегот на train_trip_id во една партиција на Ticket треба да биде:
    203 [[Image("vozovi po particija.png",500px)]]
    204 
    205 Зошто по точно 650?
    206 
    207 Бидејќи train_trip_id се доделуваат последователно (1, 2, 3...), во еден месец ID-ата се движат во строго дефиниран континуиран опсег. Ова овозможува директно следење на партициите на Train Trip, но со прецизно сечење на 5 помали пакувања по месец.
     191- **Математичко објаснување на партиционирањето** ПресметкаБидејќи партициите на Train Trip се поделени по месеци и содржат по ~3,300 возови за една месечна партиција.
     192
     193 Пресметка на билети по месечна партиција:
     194
     195 [[Image("Bileti po particija.png",500px)]]
     196
     197 Тоа значи дека една месечна партиција на Train Trip е преголема за директно пресликување во една партиција на Ticket. За да се   добијат партиции од препорачаните ~20,000 редови, секој месец мора логаритамски да се „исече“ на помали парчиња:
     198
     199 [[Image("particii po mesec.png",500px)]]
     200
     201 Со тоа, опсегот на train_trip_id во една партиција на Ticket треба да биде:
     202 [[Image("vozovi po particija.png",500px)]]
     203
     204 Зошто по точно 650?
     205
     206 Бидејќи train_trip_id се доделуваат последователно (1, 2, 3...), во еден месец ID-ата се движат во строго дефиниран континуиран  опсег. Ова овозможува директно следење на партициите на Train Trip, но со прецизно сечење на 5 помали пакувања по месец.
    208207Со овој пристап секоја партиција на Ticket директно кореспондира со точно дефиниран подопсег од месечна партиција на Train Trip, со што се гарантира:
    209208
     
    216215    - Партициите на Ticket и Train Trip се логички и структурно усогласени.
    217216
    218 Финална проверка на капацитетот:
    219 [[Image("finalna presmetka.png",500px)]]
     217 Финална проверка на капацитетот:
     218 [[Image("finalna presmetka.png",500px)]]
    220219
    221220=== Kод со објаснување