Changes between Version 1 and Version 2 of ER-Diagram


Ignore:
Timestamp:
12/29/24 18:39:55 (2 weeks ago)
Author:
173067
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ER-Diagram

    v1 v2  
    99**1. User** - Ентитет за корисникот и неговите информации.\\
    1010
    11    - UserID - примарен клуч, int, задолжителен
    12    - Name - varchar, задолжителен
    13    - Surname - varchar, задолжителен
    14    - Email - varchar, задолжителен
    15    - Password - varchar, задолжителен
     11   - UserID - примарен клуч, int
     12   - Name - varchar
     13   - Surname - varchar
     14   - Email - varchar
     15   - Password - varchar
     16   - Phone number - varchar
     17   - DateJoined - datetime
    1618
     19**2. Flight** - Ентитет за лет.\\
    1720
    18 **2. Flight From** - Ентитет за почетна дестинација.\\
    19 
    20    - FlightFromID - примарен клуч, int, задолжителен
    21    - City Name - varchar, задолжителен\\
    22 
    23 **3. Flight To** - Ентитет за крајна дестинација.\\
    24 
    25    - FlightToID - примарен тип, int, задолжителен
    26    - City Name - varchar, задолжителен\\
     21   - FlightID - примарен клуч, int
     22   - FlightNumber - varchar
     23   - DepartureAirport - varchar
     24   - ArrivalAirport - varchar
     25   - DepartureTime - datetime
     26   - ArrivalTime - datetime
     27   - Duration - time
     28   - Price - decimal(10,2)
     29   - AvailableSeats - int \\
    2730
    2831**3. Booking** - Ентитет за листата на резервирани летови за корисникот.\\
    2932
    30    - BookingID - примарен клуч, int, задолжителен
     33   - BookingID - примарен клуч, int
     34   - UserID - foreign key, int
     35   - FlightID - foreign key, int
     36   - BookingDate - datetime
     37   - PaymentStatus - enum('Pending','Completed', 'Cancelled')
     38   - TotalCost - decimal(10,2)
     39   - SeatNumber - int\\
     40
     41**4. Destination** - Ентитет за дестинација.\\
     42
     43   - DestinationID- примарен клуч, int
     44   - Name - varchar
     45   - Country - varchar
     46   - Description - text
     47   - PopularAttraction - text
     48   - BestTimeToVisit - varchar\\
     49
    3150
    3251**5. Review** - Ентитет за листата на рецензии.\\
    3352
    34    - ReviewID - примарен клуч, int, задолжителен
     53   - ReviewID- примарен клуч, int
     54   - UserID - foreign key, int,
     55   - TargetID - foreign key, int (може да биде FlightID или DestinationID)
     56   - ReviewComment - text
     57   - Rating - decimal(2,1)
     58   - Date - datetime
    3559
    36 **6. Booking Review** - Ентитет за листата на рецензии од одреден корисник.\\
     60**6. Airport** - Ентитет за аеродром.\\
    3761
    38    - BookingReviewID - примарен клуч, int, задолжителен
    39    - ReviewID - foreign key
    40    - UserID - foreign key
     62   - AirportID - примарен клуч, int, задолжителен
     63   - Name - varchar
     64   - City - varchar
     65   - Country - varchar
     66   - Code - char(3)
    4167
    42 **7. Notification** - Ентитет за испраќање известувања до корисниците.\\
     68**7. Payment** - Ентитет за трансакции.\\
    4369
    44    - NotificationID - примарен клуч, int, задолжителен
     70   - PaymentID - примарен клуч, int
     71   - BookingID - foreign key, int
     72   - UserID - foreign key, int
     73   - Payment method - enum('Credit Card','Debit card', 'PayPal')
     74   - Amount - decimal(10,2)
     75   - TransactionDate - datetime
     76   - PaymentStatus - enum('Success', 'Failed', 'Processing')\\
     77
     78**8. Notification** - Ентитет за известувања.\\
     79
     80   - NotificationID- примарен клуч, int
     81   - UserID - foreign key, int
     82   - Message - text
     83   - Type - enum('Booking Confirmation', 'Flight Delay', 'General Update')
     84   - DateSent - datetime\\
     85
     86**9. Wishlist** - Ентитет за листа со посакувани дестинации.\\
     87
     88   - WishlistID - примарен клуч, int
     89   - UserID - foreign key, int
     90   - TargetID - foreign key, int (може да биде FlightID или DestinationID)
     91   - DateAdded - datetime \\
    4592
    4693
    47 === Релации
     94**10. Administrator** - Ентитет за тикети за поддршка.\\
     95   - AdminID - примарен клуч, int
     96   - Email - varchar\\
     97
     98
     99**11. SupportTicket** - Ентитет за тикети за поддршка.\\
     100
     101   - TicketID- примарен клуч, int
     102   - UserID - foreign key, int
     103   - Subject - varchar
     104   - Description - text
     105   - Status - enum('Open', 'In Progress', 'Resolved')
     106   - DateCreated - datetime
     107   - DateResolved - datetime (nullable)
     108   - AssignedTo - foreign key, int\\
     109
     110
     111=== 1-1 Релации
     112
     113 - ''has'' - релација помеѓу **Payment** и **Booking**. Секој Payment е за еден Booking, и секој Booking има само еден Payment.
     114
     115=== 1-M Релации
     116
     117 - ''creates'' - релација помеѓу **User** и **Booking**. Секој User може да има повеќе Bookings, и еден Booking може да има повеќе Users.
     118 - ''leaves'' - релација помеѓу **User** и **Review**. Секој User може да остави повеќе Reviews, но едно Review може да припаѓа на еден User.
     119 - ''adds to'' - релација помеѓу **User** и **Wishlist**. Секој User може да има повеќе ставки во Wishlist, но една ставка од Wishlist може да припаѓа само на еден User.
     120 - ''makes a'' - релација помеѓу **User** и **Payment**. Секој User може да има повеќе Payments, но еден Payment може да припаѓа на еден User.
     121 - ''gets a'' - релација помеѓу **User** и **Notification**. Секој User може да добие повеќе Notifications, но една нотификација е пратена до само еден User.
     122 - ''opens a'' - релација помеѓу **User** и **Support Ticket**. Секој User може да отвори повеќе Support Tickets, но еден тикет може да е отворен од само еден User.
     123 - ''has a'' - релација помеѓу **Flight** и **Booking**. Секој Flight може да има повеќе Bookings, но еден Booking е линкуван со само еден Flight.
     124 - ''has a'' - релација помеѓу **Airport** и **Flight**. Секој Airport може да има повеќе departing or arriving Flights, но секој Flight departs or arrives на еден Airport.
     125 - ''has a'' - релација помеѓу **Destination** и **Review**. Секој Destination може да има повеќе Reviews, но еден Review може да припаѓа на само една Destination.
     126 - ''works on'' - релација помеѓу **Administrator** и **Support Ticket**. Секој Administrator може да работи на повеќе Support Tickets, но еден Support Ticket може да припаѓа само на еден Administrator.
     127
     128=== M-N Релации
     129
     130 - ''added in'' - релација помеѓу **Flight** и **Wishlist**. Wishlist може да содржи повеќе Flights, и секој Flight може да се содржи во повеќе Wishlists.
     131 - ''added in'' - релација помеѓу **Destination** и **Wishlist**. Wishlist може да содржи повеќе Destinations, и секој Destination може да се содржи во повеќе Wishlists.
     132 - ''added for'' - релација помеѓу **Flight** и **Review**. Review може да има за повеќе Flights, и зa секој Flight може да има повеќе Reviews.
     133 - ''added for'' - релација помеѓу **Destination** и **Review**. Review може да има за повеќе Destinations , и секој Destination може да има повеќе Reviews.
     134
     135