| | 1 | == Дијаграм |
| | 2 | |
| | 3 | [[Image(SkyChase-diagram.png)]] |
| | 4 | |
| | 5 | == Податочни побарувања |
| | 6 | |
| | 7 | === Ентитети\\ |
| | 8 | |
| | 9 | **1. ApplicationUser** - Ентитет за корисникот и неговите информации.\\ |
| | 10 | |
| | 11 | - UserID - примарен клуч, int |
| | 12 | - Name - varchar |
| | 13 | - Surname - varchar |
| | 14 | - Email - varchar |
| | 15 | - Password - varchar |
| | 16 | - Phone number - varchar |
| | 17 | - Date Joined - datetime |
| | 18 | |
| | 19 | **2. Destination** - Ентитет за дестинација.\\ |
| | 20 | |
| | 21 | - DestinationID- примарен клуч, int |
| | 22 | - Name - varchar |
| | 23 | - Country - varchar |
| | 24 | - Description - text |
| | 25 | - Popular Attraction - text |
| | 26 | - Best Time To Visit - varchar\\ |
| | 27 | |
| | 28 | **3. Airport** - Ентитет за аеродром.\\ |
| | 29 | |
| | 30 | - AirportID - примарен клуч, int, задолжителен |
| | 31 | - Name - varchar |
| | 32 | - CityID - int, foreign key |
| | 33 | - Country - varchar |
| | 34 | - Code - varchar |
| | 35 | |
| | 36 | |
| | 37 | **4. Flight** - Ентитет за лет.\\ |
| | 38 | |
| | 39 | - FlightID - примарен клуч, int |
| | 40 | - Flight Number - varchar |
| | 41 | - Departure Airport - varchar |
| | 42 | - Arrival Airport - int, foreign key |
| | 43 | - Departure Time - int, foreign key |
| | 44 | - Arrival Time - datetime |
| | 45 | - Price - decimal(10,2) |
| | 46 | - Available Seats - int \\ |
| | 47 | |
| | 48 | **5. Booking** - Ентитет за листата на резервирани летови за корисникот.\\ |
| | 49 | |
| | 50 | - BookingID - примарен клуч, int |
| | 51 | - UserID - foreign key, int |
| | 52 | - FlightID - foreign key, int |
| | 53 | - Booking Date - datetime |
| | 54 | - Payment Status - enum('Pending','Completed', 'Cancelled') |
| | 55 | - Total Cost - decimal(10,2) |
| | 56 | - Seat Number - int\\ |
| | 57 | |
| | 58 | |
| | 59 | |
| | 60 | **6. Review** - Ентитет за листата на рецензии.\\ |
| | 61 | |
| | 62 | - ReviewID- примарен клуч, int |
| | 63 | - UserID - foreign key, int, |
| | 64 | - TargetID - foreign key, int (може да биде FlightID или DestinationID) |
| | 65 | - Review Comment - text |
| | 66 | - Rating - int |
| | 67 | - Date - datetime |
| | 68 | |
| | 69 | |
| | 70 | **7. Payment** - Ентитет за трансакции.\\ |
| | 71 | |
| | 72 | - PaymentID - примарен клуч, int |
| | 73 | - BookingID - foreign key, int |
| | 74 | - UserID - foreign key, int |
| | 75 | - Payment method - enum('Credit Card','Debit card', 'PayPal') |
| | 76 | - Amount - decimal(10,2) |
| | 77 | - Transaction Date - datetime |
| | 78 | - Payment Status - enum('Success', 'Failed', 'Processing')\\ |
| | 79 | |
| | 80 | **8. Notification** - Ентитет за известувања.\\ |
| | 81 | |
| | 82 | - NotificationID- примарен клуч, int |
| | 83 | - UserID - foreign key, int |
| | 84 | - Message - text |
| | 85 | - Type - enum('Booking Confirmation', 'Flight Delay', 'General Update') |
| | 86 | - Date Sent - datetime\\ |
| | 87 | |
| | 88 | **9. Wishlist** - Ентитет за листа со посакувани дестинации.\\ |
| | 89 | |
| | 90 | - WishlistID - примарен клуч, int |
| | 91 | - UserID - foreign key, int |
| | 92 | - TargetID - foreign key, int (може да биде FlightID или DestinationID) |
| | 93 | - Date Added - datetime \\ |
| | 94 | |
| | 95 | |
| | 96 | **10. Administrator** - Ентитет за тикети за поддршка.\\ |
| | 97 | - AdminID - примарен клуч, int |
| | 98 | - Email - varchar\\ |
| | 99 | |
| | 100 | |
| | 101 | **11. Support Ticket** - Ентитет за тикети за поддршка.\\ |
| | 102 | |
| | 103 | - TicketID- примарен клуч, int |
| | 104 | - UserID - foreign key, int |
| | 105 | - Subject - varchar |
| | 106 | - Description - text |
| | 107 | - Status - enum('Open', 'In Progress', 'Resolved') |
| | 108 | - Date Created - datetime |
| | 109 | - Date Resolved - datetime (nullable) |
| | 110 | - Assigned To - foreign key, int\\ |
| | 111 | |
| | 112 | |
| | 113 | === 1-1 Релации |
| | 114 | |
| | 115 | - ''pays for'' - релација помеѓу **Payment** и **Booking**. Секој Payment е за еден Booking, и секој Booking има само еден Payment. |
| | 116 | - ''served by'' - релација помеѓу **Destination** и **Airport**. Секоја Destination се опслужува од еден Airport, и секој Airport опслужува само една Destination. |
| | 117 | |
| | 118 | === 1-M Релации |
| | 119 | |
| | 120 | - ''books'' - релација помеѓу **User** и **Booking**. Секој User може да има повеќе Bookings, и еден Booking може да има повеќе Users. |
| | 121 | - ''leaves review for'' - релација помеѓу **User** и **Review**. Секој User може да остави повеќе Reviews, но едно Review може да припаѓа на еден User. |
| | 122 | - ''adds item to'' - релација помеѓу **User** и **Wishlist**. Секој User може да има повеќе ставки во Wishlist, но една ставка од Wishlist може да припаѓа само на еден User. |
| | 123 | - ''makes payment for'' - релација помеѓу **User** и **Payment**. Секој User може да има повеќе Payments, но еден Payment може да припаѓа на еден User. |
| | 124 | - ''receives notification'' - релација помеѓу **User** и **Notification**. Секој User може да добие повеќе Notifications, но една нотификација е пратена до само еден User. |
| | 125 | - ''submits'' - релација помеѓу **User** и **Support Ticket**. Секој User може да отвори повеќе Support Tickets, но еден тикет може да е отворен од само еден User. |
| | 126 | - ''includes'' - релација помеѓу **Flight** и **Booking**. Секој Flight може да има повеќе Bookings, но еден Booking е линкуван со само еден Flight. |
| | 127 | - ''operates on'' - релација помеѓу **Airport** и **Flight**. Секој Airport може да има повеќе departing or arriving Flights, но секој Flight departs or arrives на еден Airport. |
| | 128 | - ''receives review for'' - релација помеѓу **Destination** и **Review**. Секој Destination може да има повеќе Reviews, но еден Review може да припаѓа на само една Destination. |
| | 129 | - ''handles'' - релација помеѓу **Administrator** и **Support Ticket**. Секој Administrator може да работи на повеќе Support Tickets, но еден Support Ticket може да припаѓа само на еден Administrator. |
| | 130 | |
| | 131 | === M-N Релации |
| | 132 | |
| | 133 | - ''wishlist includes flight'' - релација помеѓу **Flight** и **Wishlist**. Wishlist може да содржи повеќе Flights, и секој Flight може да се содржи во повеќе Wishlists. |
| | 134 | - ''wishlist includes destination'' - релација помеѓу **Destination** и **Wishlist**. Wishlist може да содржи повеќе Destinations, и секој Destination може да се содржи во повеќе Wishlists. |
| | 135 | - ''review relates to flight'' - релација помеѓу **Flight** и **Review**. Review може да има за повеќе Flights, и зa секој Flight може да има повеќе Reviews. |
| | 136 | |