Changes between Version 2 and Version 3 of RelationalModel


Ignore:
Timestamp:
04/22/26 22:10:01 (10 days ago)
Author:
231178
Comment:

Подобрување на описот за ER дијаграмот

Legend:

Unmodified
Added
Removed
Modified
  • RelationalModel

    v2 v3  
    55[[Image(PaP_19_04_2026.png, width=100%)]]
    66
    7 == Дополнителен oпис
     7== Дополнителен опис
    88
    9 Табелите `Category`, `Room_Type`, `Species` и `Breed` служат за дефинирање на статични податоци во системот. `Category` ги категоризира производите, `Room_Type` ги дефинира видовите соби со соодветна цена по ноќ, додека `Species` и `Breed` ги опишуваат биолошките карактеристики на миленичињата.
     9Табелите `Category`, `Room_Type`, `Species` и `Breed` служат за дефинирање на статични (lookup) податоци во системот. Овие ентитети се издвоени во посебни табели со цел да се постигне нормализација и да се избегне повторување на податоци. На пример, `Category` овозможува централизирано управување со типовите на производи, што го олеснува нивното менување и проширување без потреба од измени во повеќе записи. Слично, `Room_Type` овозможува флексибилно дефинирање на типови на соби и нивните цени, што е подобро отколку цената да се чува директно во `Room`, бидејќи повеќе соби можат да делат ист тип.
    1010
    11 Табелата `Product` содржи информација за категоријата и доставителот на производот кој се чува во `Supplier`. `Order` табелата дозволува хотелите да прават нарачки на продукти.
     11`Species` и `Breed` се моделирани како посебни табели со релација 1:N со цел да се избегне повторување на текстуални вредности и да се овозможи конзистентност при внес на податоци. Ова исто така овозможува лесно додавање нови видови и раси без влијание врз постоечките записи.
    1212
    13  
    14 Во табелата `OrderProduct` имаме врска помеѓу `Order` и `Product`, каде се чуваат количината и единечната цена на секој производ во нарачката. Ова е направено бидејќи цената на производот може да се менува со текот на времето, па е важно да се зачува историската цена во моментот на нарачката, исто така дозволува следење колкава количина од секој продукт е нарачана.
     13Табелата `Product` содржи информации за производите и е поврзана со `Category` и `Supplier`. `Supplier` ги содржи сите информации за добавувачите, што спречува повторување доколку повеќе производи доаѓаат од ист добавувач. Ваквиот дизајн го олеснува и ажурирањето на податоците за добавувачите.
    1514
    16 Табелата `Delivery` ги поврзува нарачките со хотелот и набавките, и го следи статусот и датумот на испорака на производите до хотелот.
     15Табелата `Order` претставува нарачка направена од хотелот. Таа е моделирана како посебен ентитет за да се овозможи следење на историјата на набавки, статуси на нарачки и нивна обработка независно од самите производи.
    1716
    18 Табелата `Reservation` е централна во системот и поврзува `Customer`, `Employee` и `Pet`. Од неа произлегуваат:
     17Во табелата `OrderProduct` имаме M:N врска помеѓу `Order` и `Product`, која е разрешена преку посебна табела. Во неа се чуваат количината и единечната цена на производ во дадена нарачка. Овој пристап е избран бидејќи една нарачка може да содржи повеќе производи и еден производ може да се појави во повеќе нарачки. Дополнително, чувањето на `unit_price` во оваа табела овозможува историска конзистентност, односно цената во моментот на нарачка да остане непроменета дури и ако се промени основната цена во `Product`.
    1918
    20 `RoomReservation` ги чува датумите на пријавување и одјавување и поврзува резервација со соба. Табелата `ServiceReservation` ги чува закажаните услуги и поврзува резервација со сервис.
    21 `PetDelivery` ги чува информациите за достава на миленичето.
     19Табелата `Delivery` ги поврзува нарачките со хотелот и го следи процесот на испорака. Таа е издвоена од `Order` за да се овозможи флексибилност. Една нарачка може да има различни состојби на испорака, или во иднина да се поддржат повеќе испораки по една нарачка. Табелата е во релација со `OrderProduct` за да овозможи пратење на статусот и датумот на испорака на секој поединечен производ.
    2220
     21Табелата `Reservation` претставува агрегат кој ги поврзува `Customer`, `Pet` и `Employee`. Овој дизајн овозможува:
     22* следење кој клиент направил резервација
     23* за кое милениче се однесува
     24* кој вработен е одговорен
     25Табелата содржи и статус, цена и белешки, што ја прави главен извор на информации за престојот.
    2326
    24 Табелата `Payment` е поврзана директно со `Reservation`. Секоја резервација може да има најмногу една уплата за која се чува датум, износ, метод на плаќање и статус.
     27`RoomReservation` ги чува датумите на пријавување и одјавување и ја поврзува резервацијата со соба.
    2528
    26 `Employee_Service` дефинира кои вработени можат да вршат кои услуги.
    27 `Product_Service` дефинира кои производи се потребни за одредена услуга.
     29`ServiceReservation` ги чува закажаните услуги. Оваа табела е потребна бидејќи една резервација може да вклучува повеќе услуги во различни термини.
    2830
     31`PetDelivery` ги чува информациите за транспорт на миленичето. Оваа функционалност е издвоена бидејќи не секоја резервација вклучува достава, па со тоа се избегнуваат null вредности во `Reservation`.
    2932
    30 Табелата `MedicalRecord` ги чува медицинските записи за секое милениче. Секој запис е директно поврзан со конкретен `Pet`.
    31 Табелата `Review` овозможува клиентите да остават рецензии за хотелот. Секоја рецензија е поврзана со `Customer` и `Hotel`, и содржи оцена и коментар.
     33Табелата `Payment` е поврзана директно со `Reservation`. Секоја резервација може да има повеќе уплати за кои се чува датум, износ, метод на плаќање и статус.
    3234
     35Табелата `Employee_Service` е резултат на M:N релација помеѓу `Employee` и `Service`. Еден вработен може да врши повеќе услуги, а една услуга може да ја вршат повеќе вработени.
    3336
    34 Табелата `Date` служи за следење на достапноста на собите по датум.
     37`Product_Service` дефинира кои производи се потребни за одредена услуга. Табелата се користи за пресметка на трошоци и анализа на потрошувачка.
    3538
     39Табелата `MedicalRecord` ги чува медицинските записи за секое милениче и е поврзана со `Pet` во 1:N релација. Овој дизајн овозможува секое милениче да има повеќе записи низ времето, што е важно за следење на историјата и обезбедување на соодветна грижа.
     40
     41Табелата `Review` овозможува клиентите да оставаат рецензии за хотелот.
     42
     43Табелата `Date` служи за следење на достапноста на собите по датум. Овој пристап е избран наместо динамичко пресметување со цел:
     44* побрзо пребарување
     45* поедноставна логика за проверка на достапност
     46* можност за предгенерирање на календар на достапност