How to Design Database for Flight Reservation System (original) (raw)

Last Updated : 27 Feb, 2024

Database design for Airline reservation system is crucial for managing flight bookings effectively. In this guide, we'll explore the essential components and steps involved in creating such a system for flight booking, ensuring smooth operations, and user satisfaction.

Database Design for Flight Reservation System

Database design for airline reservation systems must manage various entities such as flights, passengers, airlines, airports, bookings, and payments. It should support functionalities such as searching for available flights, making reservations, managing passenger information, and processing payments securely. By designing a database that addresses these requirements, airlines, and travel agencies can streamline their operations and provide a seamless booking experience to customers.

Flight Reservation System Features:

These are the following features of the airline reservation system.

Entities and Attributes for the Flight Reservation System

Entities serve as the building blocks of our database, representing the fundamental objects or concepts that need to be stored and managed. Attributes define the characteristics or properties of each entity. Let’s explore each entity and attribute in detail:

Flight: Represents individual flights operated by airlines.

Passenger: Represents individuals booking flights.

Airline: Represents airlines operating flights.

Airport: Represents airports serving as departure or arrival points for flights.

Booking: Represents flight reservations made by passengers.

Payment: Represents payments made for flight bookings.

Relationships Between Entities

Flight – Booking Relationship

Passenger – Booking Relationship

Flight – Airport Relationship

Airline – Flight Relationship

Payment – Booking Relationship

Representataion of ER Diagram

ER-FRS

Entities Structures in SQL Format

-- Flight Table
CREATE TABLE Flight (
FlightID INT PRIMARY KEY,
FlightNumber VARCHAR(20) UNIQUE,
DepartureDateTime DATETIME,
ArrivalDateTime DATETIME,
OriginAirportCode VARCHAR(3),
DestinationAirportCode VARCHAR(3),
AvailableSeats INT,
FOREIGN KEY (OriginAirportCode) REFERENCES Airport(AirportCode),
FOREIGN KEY (DestinationAirportCode) REFERENCES Airport(AirportCode)
);

-- Passenger Table
CREATE TABLE Passenger (
PassengerID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Email VARCHAR(100),
PassportNumber VARCHAR(20)
);

-- Airport Table
CREATE TABLE Airport (
AirportCode VARCHAR(3) PRIMARY KEY,
AirportName VARCHAR(100),
Location VARCHAR(255),
Facilities VARCHAR(255)
);

-- Airline Table
CREATE TABLE Airline (
AirlineID INT PRIMARY KEY,
AirlineName VARCHAR(100),
ContactNumber VARCHAR(20),
OperatingRegion VARCHAR(100)
);

-- Booking Table
CREATE TABLE Booking (
BookingID INT PRIMARY KEY,
FlightID INT,
PassengerID INT,
PaymentStatus VARCHAR(20),
FOREIGN KEY (FlightID) REFERENCES Flight(FlightID),
FOREIGN KEY (PassengerID) REFERENCES Passenger(PassengerID)
);

-- Payment Table
CREATE TABLE Payment (
PaymentID INT PRIMARY KEY,
BookingID INT UNIQUE,
PaymentMethod VARCHAR(50),
Amount DECIMAL(10, 2),
TransactionDateTime DATETIME,
FOREIGN KEY (BookingID) REFERENCES Booking(BookingID)
);

Database Model for Flight Reservation System

Flight_Reservation_System_DB

Conclusion

Designing a relational database for a flight booking system involves identifying the entities, defining their attributes, establishing relationships between them, and enforcing data integrity. By following a systematic approach and considering the specific requirements of the system, a well-designed database can facilitate efficient flight booking processes and enhance the overall user experience.