Changes between Version 2 and Version 3 of RelationalModel
- Timestamp:
- 04/22/26 22:10:01 (10 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
RelationalModel
v2 v3 5 5 [[Image(PaP_19_04_2026.png, width=100%)]] 6 6 7 == Дополнителен oпис7 == Дополнителен опис 8 8 9 Табелите `Category`, `Room_Type`, `Species` и `Breed` служат за дефинирање на статични податоци во системот. `Category` ги категоризира производите, `Room_Type` ги дефинира видовите соби со соодветна цена по ноќ, додека `Species` и `Breed` ги опишуваат биолошките карактеристики на миленичињата.9 Табелите `Category`, `Room_Type`, `Species` и `Breed` служат за дефинирање на статични (lookup) податоци во системот. Овие ентитети се издвоени во посебни табели со цел да се постигне нормализација и да се избегне повторување на податоци. На пример, `Category` овозможува централизирано управување со типовите на производи, што го олеснува нивното менување и проширување без потреба од измени во повеќе записи. Слично, `Room_Type` овозможува флексибилно дефинирање на типови на соби и нивните цени, што е подобро отколку цената да се чува директно во `Room`, бидејќи повеќе соби можат да делат ист тип. 10 10 11 Табелата `Product` содржи информација за категоријата и доставителот на производот кој се чува во `Supplier`. `Order` табелата дозволува хотелите да прават нарачки на продукти.11 `Species` и `Breed` се моделирани како посебни табели со релација 1:N со цел да се избегне повторување на текстуални вредности и да се овозможи конзистентност при внес на податоци. Ова исто така овозможува лесно додавање нови видови и раси без влијание врз постоечките записи. 12 12 13 14 Во табелата `OrderProduct` имаме врска помеѓу `Order` и `Product`, каде се чуваат количината и единечната цена на секој производ во нарачката. Ова е направено бидејќи цената на производот може да се менува со текот на времето, па е важно да се зачува историската цена во моментот на нарачката, исто така дозволува следење колкава количина од секој продукт е нарачана. 13 Табелата `Product` содржи информации за производите и е поврзана со `Category` и `Supplier`. `Supplier` ги содржи сите информации за добавувачите, што спречува повторување доколку повеќе производи доаѓаат од ист добавувач. Ваквиот дизајн го олеснува и ажурирањето на податоците за добавувачите. 15 14 16 Табелата ` Delivery` ги поврзува нарачките со хотелот и набавките, и го следи статусот и датумот на испорака на производите до хотелот.15 Табелата `Order` претставува нарачка направена од хотелот. Таа е моделирана како посебен ентитет за да се овозможи следење на историјата на набавки, статуси на нарачки и нивна обработка независно од самите производи. 17 16 18 Табелата `Reservation` е централна во системот и поврзува `Customer`, `Employee` и `Pet`. Од неа произлегуваат: 17 Во табелата `OrderProduct` имаме M:N врска помеѓу `Order` и `Product`, која е разрешена преку посебна табела. Во неа се чуваат количината и единечната цена на производ во дадена нарачка. Овој пристап е избран бидејќи една нарачка може да содржи повеќе производи и еден производ може да се појави во повеќе нарачки. Дополнително, чувањето на `unit_price` во оваа табела овозможува историска конзистентност, односно цената во моментот на нарачка да остане непроменета дури и ако се промени основната цена во `Product`. 19 18 20 `RoomReservation` ги чува датумите на пријавување и одјавување и поврзува резервација со соба. Табелата `ServiceReservation` ги чува закажаните услуги и поврзува резервација со сервис. 21 `PetDelivery` ги чува информациите за достава на миленичето. 19 Табелата `Delivery` ги поврзува нарачките со хотелот и го следи процесот на испорака. Таа е издвоена од `Order` за да се овозможи флексибилност. Една нарачка може да има различни состојби на испорака, или во иднина да се поддржат повеќе испораки по една нарачка. Табелата е во релација со `OrderProduct` за да овозможи пратење на статусот и датумот на испорака на секој поединечен производ. 22 20 21 Табелата `Reservation` претставува агрегат кој ги поврзува `Customer`, `Pet` и `Employee`. Овој дизајн овозможува: 22 * следење кој клиент направил резервација 23 * за кое милениче се однесува 24 * кој вработен е одговорен 25 Табелата содржи и статус, цена и белешки, што ја прави главен извор на информации за престојот. 23 26 24 Табелата `Payment` е поврзана директно со `Reservation`. Секоја резервација може да има најмногу една уплата за која се чува датум, износ, метод на плаќање и статус.27 `RoomReservation` ги чува датумите на пријавување и одјавување и ја поврзува резервацијата со соба. 25 28 26 `Employee_Service` дефинира кои вработени можат да вршат кои услуги. 27 `Product_Service` дефинира кои производи се потребни за одредена услуга. 29 `ServiceReservation` ги чува закажаните услуги. Оваа табела е потребна бидејќи една резервација може да вклучува повеќе услуги во различни термини. 28 30 31 `PetDelivery` ги чува информациите за транспорт на миленичето. Оваа функционалност е издвоена бидејќи не секоја резервација вклучува достава, па со тоа се избегнуваат null вредности во `Reservation`. 29 32 30 Табелата `MedicalRecord` ги чува медицинските записи за секое милениче. Секој запис е директно поврзан со конкретен `Pet`. 31 Табелата `Review` овозможува клиентите да остават рецензии за хотелот. Секоја рецензија е поврзана со `Customer` и `Hotel`, и содржи оцена и коментар. 33 Табелата `Payment` е поврзана директно со `Reservation`. Секоја резервација може да има повеќе уплати за кои се чува датум, износ, метод на плаќање и статус. 32 34 35 Табелата `Employee_Service` е резултат на M:N релација помеѓу `Employee` и `Service`. Еден вработен може да врши повеќе услуги, а една услуга може да ја вршат повеќе вработени. 33 36 34 Табелата `Date` служи за следење на достапноста на собите по датум.37 `Product_Service` дефинира кои производи се потребни за одредена услуга. Табелата се користи за пресметка на трошоци и анализа на потрошувачка. 35 38 39 Табелата `MedicalRecord` ги чува медицинските записи за секое милениче и е поврзана со `Pet` во 1:N релација. Овој дизајн овозможува секое милениче да има повеќе записи низ времето, што е важно за следење на историјата и обезбедување на соодветна грижа. 40 41 Табелата `Review` овозможува клиентите да оставаат рецензии за хотелот. 42 43 Табелата `Date` служи за следење на достапноста на собите по датум. Овој пристап е избран наместо динамичко пресметување со цел: 44 * побрзо пребарување 45 * поедноставна логика за проверка на достапност 46 * можност за предгенерирање на календар на достапност
