Professional Documents
Culture Documents
221fj01071 Dbms
221fj01071 Dbms
Module – 1, T-3
BATCH No. – 10
Entities:
User (Generalization of Passenger and Driver)
Passenger
Driver
Ride
RideType
Rating
b) Specify key attributes of each entity type, attribute type
Attributes:
User :
Driver :
Relationship :-
Passenger – has many - Rides.
Driver – has many – Rides.
Ride – has one – Rating.
Ride – has one – Payment.
d) Assumptions and Justifications:
I assume that each ride can have only one passenger and one driver.
A user can be both a passenger and a driver, which is why I used a generalization for
the User entity.
RideType entity is used to categorize different types of rides (e.g., economy,
premium) with varying fare structures.
The Rating entity allows both passengers and drivers to rate each other after a
completed ride.
E-R Diagram
e) Table Creation and Primary/Foreign Keys:
CREATE TABLE User (
UserID INT PRIMARY KEY,
Username VARCHAR(50) NOT NULL,
Password VARCHAR(50) NOT NULL,
Email VARCHAR(100) NOT NULL,
Phone VARCHAR(15) NOT NULL
);
CREATE TABLE Passenger (
PassengerID INT PRIMARY KEY,
UserID INT UNIQUE,
Address VARCHAR(200),
FOREIGN KEY (UserID) REFERENCES User(UserID)
);
CREATE TABLE Driver (
DriverID INT PRIMARY KEY,
UserID INT UNIQUE,
VehicleInfo VARCHAR(100),
AvailabilityStatus BOOLEAN,
FOREIGN KEY (UserID) REFERENCES User(UserID)
);
-- Insert passengers
INSERT INTO Passenger (PassengerID, UserID, Address) VALUES
(1, Suraj@123, 'Patna, City'),
(2, Raja@123, ' Chapra, Town');
-- Insert drivers
INSERT INTO Driver (DriverID, UserID, VehicleInfo, AvailabilityStatus) VALUES
(1, Suraj@123, 'Car Model AA', TRUE)
(2,Raja@123,’Car Model CC’,TRUE);
-- Insert ride types
INSERT INTO RideType (RideTypeID, TypeName, BaseFare) VALUES
(1, 'Economy', 10.00),
(2, 'Premium', 20.00);
-- Insert rides
INSERT INTO Ride (RideID, PassengerID, DriverID, PickupLocation, Destination, RideTypeID, EstimatedFare, Status) VALUES
(1, 1, 1, ‘Patna', ‘Sonpur', 1, 12.50, 'Completed'),
(2, 2, 1, ‘Parmanandpur', ‘Murthan', 2, 25.00, 'Ongoing');
-- Insert ratings
INSERT INTO Rating (RatingID, RideID, RatedUserID, Stars, Comment) VALUES
(1, 1, 1, 4, 'Good ride'),
(2, 1, 2, 5, 'Excellent driver');
User Table
UserID Username Password Email Phone
1 Suraj1 Suraj@123 Suraj@example.com 123-456-7890
2 Raja1 Raja@123 Raja@example.com 987-654-3210
Passenger Table
Driver Table
DriverID UserID VehicleInfo AvailabilityStatus
1 Suraj1 Car Model AA TRUE
2 Raja1 Car Model CC TRUE
17
RideType Table
RideTypeID TypeName BaseFare
1 Economy 10.00
2 Premium 20.00
Ride Table
Rating Table
RatingID RideID RatedUserID Stars Comment
1 1 1 4 Good ride
2 1 2 5 Excellent driver
THANK YOU