0% found this document useful (0 votes)
14 views

database_schema_new_page_v2

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

database_schema_new_page_v2

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Database Schema

1. Users Table

Stores user information, including contact details and wallet balance.

CREATE TABLE Users (

UserId INT PRIMARY KEY IDENTITY,

Name NVARCHAR(100),

Email NVARCHAR(100) UNIQUE,

PasswordHash NVARCHAR(256),

PhoneNumber NVARCHAR(15),

WalletBalance DECIMAL(10, 2) DEFAULT 0,

CreatedAt DATETIME DEFAULT GETDATE(),

UpdatedAt DATETIME

);
2. Flights Table

Stores flight details, including tracking, terminal, and gate information.

CREATE TABLE Flights (

FlightId INT PRIMARY KEY IDENTITY,

AirlineName NVARCHAR(100),

Source NVARCHAR(50),

Destination NVARCHAR(50),

DepartureTime DATETIME,

ArrivalTime DATETIME,

Duration NVARCHAR(50),

EconomySeats INT,

BusinessSeats INT,

PremiumSeats INT,

EconomyPrice DECIMAL(10, 2),

BusinessPrice DECIMAL(10, 2),

PremiumPrice DECIMAL(10, 2),

CurrentStatus NVARCHAR(50),

CurrentLocation NVARCHAR(100),

Gate NVARCHAR(10),

Terminal NVARCHAR(10),

TotalSeats INT AS (EconomySeats + BusinessSeats + PremiumSeats) PERSISTED,

AvailableSeats INT,

LastUpdated DATETIME DEFAULT GETDATE()

);
3. Trains Table

Stores train details, including tracking, platform, and seat information.

CREATE TABLE Trains (

TrainId INT PRIMARY KEY IDENTITY,

TrainName NVARCHAR(100),

Source NVARCHAR(50),

Destination NVARCHAR(50),

DepartureTime DATETIME,

ArrivalTime DATETIME,

Duration NVARCHAR(50),

GeneralSeats INT,

FirstACSeats INT,

SecondACSeats INT,

ThirdACSeats INT,

SleeperSeats INT,

GeneralPrice DECIMAL(10, 2),

FirstACPrice DECIMAL(10, 2),

SecondACPrice DECIMAL(10, 2),

ThirdACPrice DECIMAL(10, 2),

SleeperPrice DECIMAL(10, 2),

CurrentStatus NVARCHAR(50),

CurrentLocation NVARCHAR(100),

SourcePlatform NVARCHAR(10),

DestinationPlatform NVARCHAR(10),

TotalSeats INT AS (GeneralSeats + FirstACSeats + SecondACSeats + ThirdACSeats +


SleeperSeats) PERSISTED,

AvailableSeats INT,

LastUpdated DATETIME DEFAULT GETDATE()

);
4. TrainPNR Table

Stores PNR details and booking information for trains.

CREATE TABLE TrainPNR (

PNRId INT PRIMARY KEY IDENTITY,

PNR NVARCHAR(20) UNIQUE,

TrainId INT FOREIGN KEY REFERENCES Trains(TrainId),

UserId INT FOREIGN KEY REFERENCES Users(UserId),

SeatsBooked INT,

Class NVARCHAR(50),

BookingStatus NVARCHAR(50),

BookingDate DATETIME DEFAULT GETDATE(),

TravelDate DATETIME

);
5. Buses Table

Stores bus details, including tracking, platform, and seat information.

CREATE TABLE Buses (

BusId INT PRIMARY KEY IDENTITY,

Operator NVARCHAR(100),

Source NVARCHAR(50),

Destination NVARCHAR(50),

DepartureTime DATETIME,

ArrivalTime DATETIME,

Duration NVARCHAR(50),

EconomySeats INT,

BusinessSeats INT,

EconomyPrice DECIMAL(10, 2),

BusinessPrice DECIMAL(10, 2),

BusType NVARCHAR(50),

CurrentStatus NVARCHAR(50),

CurrentLocation NVARCHAR(100),

SourcePlatform NVARCHAR(10),

DestinationPlatform NVARCHAR(10),

TotalSeats INT AS (EconomySeats + BusinessSeats) PERSISTED,

AvailableSeats INT,

LastUpdated DATETIME DEFAULT GETDATE()

);
6. IntermediateStations Table

Stores intermediate stations for trains.

CREATE TABLE IntermediateStations (

StationId INT PRIMARY KEY IDENTITY,

TrainId INT FOREIGN KEY REFERENCES Trains(TrainId),

StationName NVARCHAR(100),

ArrivalTime DATETIME,

DepartureTime DATETIME,

DistanceFromStart INT,

Platform NVARCHAR(10),

Sequence INT

);
7. Hotels Table

Stores hotel details, including room availability.

CREATE TABLE Hotels (

HotelId INT PRIMARY KEY IDENTITY,

Name NVARCHAR(100),

Location NVARCHAR(100),

TotalRooms INT,

AvailableRooms INT,

PricePerNight DECIMAL(10, 2),

Rating FLOAT,

Amenities NVARCHAR(MAX),

LastUpdated DATETIME DEFAULT GETDATE()

);
8. Bookings Table

Stores booking details for all types (flights, trains, buses, and hotels).

CREATE TABLE Bookings (

BookingId INT PRIMARY KEY IDENTITY,

UserId INT FOREIGN KEY REFERENCES Users(UserId),

BookingType NVARCHAR(50),

ItemId INT,

Class NVARCHAR(50),

SeatsBooked INT,

TotalAmount DECIMAL(10, 2),

PaymentStatus NVARCHAR(50),

BookingDate DATETIME DEFAULT GETDATE()

);
9. PaymentCharges Table

Stores additional charges for bookings.

CREATE TABLE PaymentCharges (

ChargeId INT PRIMARY KEY IDENTITY,

BookingId INT FOREIGN KEY REFERENCES Bookings(BookingId),

ConvenienceFee DECIMAL(10, 2),

PlatformFee DECIMAL(10, 2),

CGST DECIMAL(10, 2),

SGST DECIMAL(10, 2),

TotalAmount DECIMAL(10, 2)

);
10. Notifications Table

Stores notifications sent to users.

CREATE TABLE Notifications (

NotificationId INT PRIMARY KEY IDENTITY,

UserId INT FOREIGN KEY REFERENCES Users(UserId),

Message NVARCHAR(MAX),

IsRead BIT DEFAULT 0,

CreatedAt DATETIME DEFAULT GETDATE()

);
11. TrackingLogs Table

Logs tracking information for flights, trains, and buses.

CREATE TABLE TrackingLogs (

LogId INT PRIMARY KEY IDENTITY,

TransportType NVARCHAR(50),

ItemId INT,

CurrentLocation NVARCHAR(100),

Status NVARCHAR(50),

UpdatedAt DATETIME DEFAULT GETDATE()

);

You might also like