== Дијаграм [[Image(SkyChase-diagram.jpg)]] == Податочни побарувања === Ентитети\\ **1. User** - Ентитет за корисникот и неговите информации.\\ - UserID - примарен клуч, int - Name - varchar - Surname - varchar - Email - varchar - Password - varchar - Phone number - varchar - Date Joined - datetime **2. Flight** - Ентитет за лет.\\ - FlightID - примарен клуч, int - Flight Number - varchar - Departure Airport - varchar - Arrival Airport - varchar - Departure Time - datetime - Arrival Time - datetime - Duration - time - Price - decimal(10,2) - Available Seats - int \\ **3. Booking** - Ентитет за листата на резервирани летови за корисникот.\\ - BookingID - примарен клуч, int - UserID - foreign key, int - FlightID - foreign key, int - Booking Date - datetime - Payment Status - enum('Pending','Completed', 'Cancelled') - Total Cost - decimal(10,2) - Seat Number - int\\ **4. Destination** - Ентитет за дестинација.\\ - DestinationID- примарен клуч, int - Name - varchar - Country - varchar - Description - text - Popular Attraction - text - Best Time To Visit - varchar\\ **5. Review** - Ентитет за листата на рецензии.\\ - ReviewID- примарен клуч, int - UserID - foreign key, int, - TargetID - foreign key, int (може да биде FlightID или DestinationID) - Review Comment - text - Rating - decimal(2,1) - Date - datetime **6. Airport** - Ентитет за аеродром.\\ - AirportID - примарен клуч, int, задолжителен - Name - varchar - City - varchar - Country - varchar - Code - char(3) **7. Payment** - Ентитет за трансакции.\\ - PaymentID - примарен клуч, int - BookingID - foreign key, int - UserID - foreign key, int - Payment method - enum('Credit Card','Debit card', 'PayPal') - Amount - decimal(10,2) - Transaction Date - datetime - Payment Status - enum('Success', 'Failed', 'Processing')\\ **8. Notification** - Ентитет за известувања.\\ - NotificationID- примарен клуч, int - UserID - foreign key, int - Message - text - Type - enum('Booking Confirmation', 'Flight Delay', 'General Update') - Date Sent - datetime\\ **9. Wishlist** - Ентитет за листа со посакувани дестинации.\\ - WishlistID - примарен клуч, int - UserID - foreign key, int - TargetID - foreign key, int (може да биде FlightID или DestinationID) - Date Added - datetime \\ **10. Administrator** - Ентитет за тикети за поддршка.\\ - AdminID - примарен клуч, int - Email - varchar\\ **11. Support Ticket** - Ентитет за тикети за поддршка.\\ - TicketID- примарен клуч, int - UserID - foreign key, int - Subject - varchar - Description - text - Status - enum('Open', 'In Progress', 'Resolved') - Date Created - datetime - Date Resolved - datetime (nullable) - Assigned To - foreign key, int\\ === 1-1 Релации - ''has'' - релација помеѓу **Payment** и **Booking**. Секој Payment е за еден Booking, и секој Booking има само еден Payment. === 1-M Релации - ''creates'' - релација помеѓу **User** и **Booking**. Секој User може да има повеќе Bookings, и еден Booking може да има повеќе Users. - ''leaves'' - релација помеѓу **User** и **Review**. Секој User може да остави повеќе Reviews, но едно Review може да припаѓа на еден User. - ''adds to'' - релација помеѓу **User** и **Wishlist**. Секој User може да има повеќе ставки во Wishlist, но една ставка од Wishlist може да припаѓа само на еден User. - ''makes a'' - релација помеѓу **User** и **Payment**. Секој User може да има повеќе Payments, но еден Payment може да припаѓа на еден User. - ''gets a'' - релација помеѓу **User** и **Notification**. Секој User може да добие повеќе Notifications, но една нотификација е пратена до само еден User. - ''opens a'' - релација помеѓу **User** и **Support Ticket**. Секој User може да отвори повеќе Support Tickets, но еден тикет може да е отворен од само еден User. - ''has a'' - релација помеѓу **Flight** и **Booking**. Секој Flight може да има повеќе Bookings, но еден Booking е линкуван со само еден Flight. - ''lands on'' - релација помеѓу **Airport** и **Flight**. Секој Airport може да има повеќе departing or arriving Flights, но секој Flight departs or arrives на еден Airport. - ''has a'' - релација помеѓу **Destination** и **Review**. Секој Destination може да има повеќе Reviews, но еден Review може да припаѓа на само една Destination. - ''works on'' - релација помеѓу **Administrator** и **Support Ticket**. Секој Administrator може да работи на повеќе Support Tickets, но еден Support Ticket може да припаѓа само на еден Administrator. === M-N Релации - ''added in'' - релација помеѓу **Flight** и **Wishlist**. Wishlist може да содржи повеќе Flights, и секој Flight може да се содржи во повеќе Wishlists. - ''added in'' - релација помеѓу **Destination** и **Wishlist**. Wishlist може да содржи повеќе Destinations, и секој Destination може да се содржи во повеќе Wishlists. - ''for'' - релација помеѓу **Flight** и **Review**. Review може да има за повеќе Flights, и зa секој Flight може да има повеќе Reviews. - ''for'' - релација помеѓу **Destination** и **Review**. Review може да има за повеќе Destinations , и секој Destination може да има повеќе Reviews.