wiki:Концептуален дизајн - ЕР Дијаграм и податочни побарувања

Version 3 (modified by 173067, 5 days ago) ( diff )

--

Дијаграм

Податочни побарувања

Ентитети

1. ApplicationUser - Ентитет за корисникот и неговите информации.

  • UserID - примарен клуч, int
  • Name - varchar
  • Surname - varchar
  • Email - varchar
  • Password - varchar
  • Phone number - varchar
  • Date Joined - datetime

2. Destination - Ентитет за дестинација.

  • DestinationID- примарен клуч, int
  • Name - varchar
  • Country - varchar
  • Description - text
  • Popular Attraction - text
  • Best Time To Visit - varchar

3. Airport - Ентитет за аеродром.

  • AirportID - примарен клуч, int, задолжителен
  • Name - varchar
  • CityID - int, foreign key
  • Country - varchar
  • Code - varchar
  • Destination - int, foreign key

4. Flight - Ентитет за лет.

  • FlightID - примарен клуч, int
  • Flight Number - varchar
  • Departure Airport - varchar
  • Arrival Airport - int, foreign key
  • Departure Time - int, foreign key
  • Arrival Time - datetime
  • Price - decimal(10,2)
  • Available Seats - int

5. Booking - Ентитет за летови.

  • BookingID - примарен клуч, int
  • UserID - foreign key, int
  • Booking Date - datetime
  • Payment Status - enum('Pending','Completed', 'Cancelled')
  • Total Cost - decimal(10,2)

6. BookingFlight - Ентитет за резервирани летови на корисникот.

  • BookingID - foreign key
  • FlightID - foreign key
  • SeatNumber - int

6. Review - Ентитет за листата на рецензии.

  • ReviewID- примарен клуч, int
  • UserID - foreign key, int,
  • BookingID - int, foreign key
  • TargetID - foreign key, int (може да биде FlightID или DestinationID)
  • Review Comment - text
  • Rating - int
  • Date - datetime

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 Релации

  • pays for - релација помеѓу Payment и Booking. Секој Payment е за еден Booking, и секој Booking има само еден Payment.

1-M Релации

  • books – релација помеѓу User и Booking. Секој User може да има повеќе Bookings, но секој Booking припаѓа на само еден User.
  • leaves review for – релација помеѓу User и Review. Секој User може да остави повеќе Reviews, но секој Review може да припаѓа на само еден User.
  • review based on booking – релација помеѓу Booking и Review. Секој Booking може да има повеќе Reviews, но секој Review е поврзан со само еден Booking, за да се осигура дека рецензијата е од вистински патник.
  • adds item to – релација помеѓу User и Wishlist. Секој User може да има повеќе ставки во Wishlist, но секоја ставка припаѓа само на еден User.
  • makes payment for – релација помеѓу User и Payment. Секој User може да има повеќе Payments, но секој Payment припаѓа само на еден User.
  • receives notification – релација помеѓу User и Notification. Секој User може да добие повеќе Notifications, но секоја Notification е испратена само до еден User.
  • submits – релација помеѓу User и Support Ticket. Секој User може да отвори повеќе Support Tickets, но секој Ticket е отворен од само еден User.
  • ticket for booking – релација помеѓу Support Ticket и Booking. Секој Ticket е поврзан со еден Booking, за да може поддршката да се однесува на конкретна резервација.
  • operates from– релација помеѓу Airport и Flight. Еден Airport може да биде почетна точка (departure) за повеќе Flights. Секој Flight има точно еден Departure Airport.
  • operates to– релација помеѓу Airport и Flight. Еден Airport може да биде крајна точка (arrival) за повеќе Flights. Секој Flight има точно еден Arrival Airport.
  • handles – релација помеѓу Administrator и Support Ticket. Секој Administrator може да обработува повеќе Tickets, но секој Ticket е доделен на еден Administrator.
  • served by – релација помеѓу Destination и Airport. Еден Destination може да има повеќе Airports, но секој Airport припаѓа на само еден Destination.

M-N Релации

  • booking includes flight – релација помеѓу Booking и Flight. Еден Booking може да содржи повеќе Flights (multi-leg trip), и еден Flight може да биде дел од повеќе Bookings.
  • wishlist includes flight – релација помеѓу Flight и Wishlist. Wishlist може да содржи повеќе Flights, и секој Flight може да се содржи во повеќе Wishlists.
  • wishlist includes destination – релација помеѓу Destination и Wishlist. Wishlist може да содржи повеќе Destinations, и секој Destination може да се содржи во повеќе Wishlists.
  • review relates to flight – релација помеѓу Flight и Review. Еден Flight може да има повеќе Reviews, и секој Review може да се однесува на повеќе Flights (ако е комплексно патување).
  • review relates to airport – релација помеѓу Airport и Review. Еден Airport може да има повеќе Reviews, и секој Review може да се однесува на повеќе Airports (пример, layover искуство).

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.