Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE NP40Book;
- GO
- DROP DATABASE IF EXISTS MokeBike;
- GO
- CREATE DATABASE MokeBike;
- GO
- USE MokeBike;
- GO
- CREATE TABLE FaultType (
- FaultCode SMALLINT PRIMARY KEY,
- FaultDesc TEXT NULL,
- );
- GO
- INSERT INTO FaultType VALUES (1, 'Tyre pressure low');
- INSERT INTO FaultType VALUES (2, 'Broken handlebars');
- INSERT INTO FaultType VALUES (3, 'Bell not working');
- INSERT INTO FaultType VALUES (4, 'Safety lights not working');
- INSERT INTO FaultType VALUES (5, 'Broken seat');
- INSERT INTO FaultType VALUES (6, 'Dented body');
- INSERT INTO FaultType VALUES (7, 'QR code scratched/faded');
- INSERT INTO FaultType VALUES (8, 'GPS tracker broken');
- INSERT INTO FaultType VALUES (9, 'Broken lock');
- INSERT INTO FaultType VALUES (10, 'Missing parts');
- GO
- CREATE TABLE Member (
- MemberID BIGINT PRIMARY KEY,
- Email VARCHAR(50) NOT NULL,
- Phone CHAR(8) NOT NULL,
- RewardPts INT NOT NULL,
- CreditBalance INT NOT NULL,
- Deposit BIT NOT NULL DEFAULT 0,
- );
- GO
- INSERT INTO Member VALUES('1','Ezykill6969@hotmail','82543873',72,14,1)
- INSERT INTO Member VALUES('2','Ashokcoolboy5@outlook.com','99663219',96,0,1)
- INSERT INTO Member VALUES('3','ravennn@outlook.com','81022436',5,30,1)
- INSERT INTO Member VALUES('4','weiwei@gmail.com','87356981',50,47,1)
- INSERT INTO Member VALUES('5','kingarthur@gmail.com','86154372',23,50,1)
- INSERT INTO Member VALUES('6','janet@gmail.com','95695848',53,1,1)
- INSERT INTO Member VALUES('7','hesus@gmail.com','96806298',92,19,1)
- INSERT INTO Member VALUES('8','jchrist@hotmail','80868883',36,38,1)
- INSERT INTO Member VALUES('9','hallah@outlook.com','97180005',88,10,1)
- INSERT INTO Member VALUES('10','joehoe@hotmail','87838482',24,39,1)
- INSERT INTO Member VALUES('11','annietan@yahoo.com','81144240',17,25,1)
- INSERT INTO Member VALUES('12','all69goh@outlook.com','89583856',66,14,1)
- INSERT INTO Member VALUES('13','monkeymarq@yahoo.com','83265188',95,12,1)
- INSERT INTO Member VALUES('14','hockeytan@hotmail','86260086',21,35,1)
- INSERT INTO Member VALUES('15','youmomlol@hotmail','89406150',9,24,1)
- GO
- CREATE TABLE BikeStop (
- BikeStopID BIGINT PRIMARY KEY,
- StopLat FLOAT NOT NULL,
- StopLong FLOAT NOT NULL,
- StopRadius FLOAT NOT NULL,
- );
- GO
- INSERT INTO BikeStop VALUES(1,-87.3779,-33.1976,8);
- INSERT INTO BikeStop VALUES(2,16.8407,138.697,21);
- INSERT INTO BikeStop VALUES(3,30.3839,99.9450,25);
- INSERT INTO BikeStop VALUES(4,26.1532,-23.7384,15);
- INSERT INTO BikeStop VALUES(5,-66.9704,-74.9351,17);
- INSERT INTO BikeStop VALUES(6,-22.5941,144.6293,14);
- INSERT INTO BikeStop VALUES(7,-60.2102,18.1223,11);
- INSERT INTO BikeStop VALUES(8,80.9589,21.7501,6);
- INSERT INTO BikeStop VALUES(9,-2.1070,-68.5870,5);
- INSERT INTO BikeStop VALUES(10,-22.1847,83.4133,24);
- INSERT INTO BikeStop VALUES(11,34.2516,77.4688,19);
- INSERT INTO BikeStop VALUES(12,-3.8181,-48.3831,8);
- INSERT INTO BikeStop VALUES(13,71.9827,-48.4927,23);
- INSERT INTO BikeStop VALUES(14,77.8298,-83.6732,12);
- INSERT INTO BikeStop VALUES(15,-24.954,-57.9471,19);
- GO
- CREATE TABLE Bike (
- BikeID BIGINT PRIMARY KEY,
- Rate SMALLMONEY NOT NULL,
- STATUS VARCHAR(20) NOT NULL CHECK (STATUS IN ('Available', 'Damaged')),
- BikeStopID BIGINT NOT NULL FOREIGN KEY REFERENCES BikeStop,
- )
- GO
- INSERT INTO Bike VALUES (1, 0.40, 'Available', 1);
- INSERT INTO Bike VALUES (2, 0.32, 'Damaged', 2);
- INSERT INTO Bike VALUES (3, 0.40, 'Available', 3);
- INSERT INTO Bike VALUES (4, 0.40, 'Available', 4);
- INSERT INTO Bike VALUES (5, 0.40, 'Damaged', 5);
- INSERT INTO Bike VALUES (6, 0.55, 'Available', 6);
- INSERT INTO Bike VALUES (7, 0.40, 'Available', 7);
- INSERT INTO Bike VALUES (8, 0.20, 'Available', 8);
- INSERT INTO Bike VALUES (9, 0.40, 'Damaged', 9);
- INSERT INTO Bike VALUES (10, 0.40, 'Available', 10);
- INSERT INTO Bike VALUES (11, 0.55, 'Available', 11);
- INSERT INTO Bike VALUES (12, 0.40, 'Damaged', 12);
- INSERT INTO Bike VALUES (13, 0.20, 'Available', 13);
- INSERT INTO Bike VALUES (14, 0.40, 'Damaged', 14);
- INSERT INTO Bike VALUES (15, 0.40, 'Available', 15);
- GO
- CREATE TABLE Promotion (
- PromoCode CHAR(6) PRIMARY KEY,
- PromoRate FLOAT NOT NULL,
- StartDate DATETIME NOT NULL,
- EndDate DATETIME NOT NULL,
- PromoDescription TEXT NULL,
- );
- GO
- CREATE TABLE CreditCard (
- CardNo VARCHAR(19) PRIMARY KEY,
- CVV CHAR(4) NOT NULL,
- CardType VARCHAR(20) NOT NULL,
- ExpiryDate DATETIME NOT NULL,
- MemberID BIGINT NOT NULL FOREIGN KEY REFERENCES Member,
- );
- GO
- INSERT INTO CreditCard VALUES('5935687892060702','5159','Network','2020-09-30',1);
- INSERT INTO CreditCard VALUES('8224503908962211','3742','American Express','2023-11-30',2);
- INSERT INTO CreditCard VALUES('1267066767278728','8360','MasterCard','2022-06-30',3);
- INSERT INTO CreditCard VALUES('8518818624861005','2004','Capital One','2019-03-31',4);
- INSERT INTO CreditCard VALUES('8334188285737418','7355','Network','2020-11-30',5);
- INSERT INTO CreditCard VALUES('8269070784041522','3672','MasterCard','2023-08-31',6);
- INSERT INTO CreditCard VALUES('7546628190228343','4758','Visa','2023-03-31',7);
- INSERT INTO CreditCard VALUES('8698548266606433','1796','Diners','2022-08-31',8);
- INSERT INTO CreditCard VALUES('3202744613765058','5960','Discover','2025-02-28',9);
- INSERT INTO CreditCard VALUES('7883726759101047','1532','American Express','2025-06-30',10);
- INSERT INTO CreditCard VALUES('8028876524515000','6937','Capital One','2024-09-30',11);
- INSERT INTO CreditCard VALUES('2163899734310162','8085','Diners','2023-11-30',12);
- INSERT INTO CreditCard VALUES('9177259930362024','2644','Visa','2022-01-31',13);
- INSERT INTO CreditCard VALUES('9050315501627512','2568','Visa','2025-02-28',14);
- INSERT INTO CreditCard VALUES('2519518809191926','4997','Capital One','2020-04-30',15);
- GO
- CREATE TABLE CreditDebitTrans (
- TransID BIGINT PRIMARY KEY,
- TransType VARCHAR(20) NOT NULL,
- TransAmt SMALLMONEY NOT NULL,
- TransDateTime DATETIME NOT NULL,
- CardNo VARCHAR(19) NOT NULL FOREIGN KEY REFERENCES CreditCard,
- );
- GO
- CREATE TABLE Ride (
- RideID BIGINT PRIMARY KEY,
- PtsRedeemed INT NULL,
- RidePts INT NOT NULL,
- Cost SMALLMONEY NOT NULL,
- Distance FLOAT NOT NULL,
- DateTimeStart DATETIME NOT NULL,
- DateTimeEnd DATETIME NOT NULL,
- MemberID BIGINT NOT NULL FOREIGN KEY REFERENCES Member,
- BikeID BIGINT NOT NULL FOREIGN KEY REFERENCES Bike,
- PromoCode CHAR(6) NULL FOREIGN KEY REFERENCES Promotion,
- START BIGINT NOT NULL FOREIGN KEY REFERENCES BikeStop(BikeStopID),
- Finish BIGINT NOT NULL FOREIGN KEY REFERENCES BikeStop(BikeStopID),
- TransID BIGINT NULL FOREIGN KEY REFERENCES CreditDebitTrans,
- );
- GO
- CREATE TABLE Maintenance (
- MaintID BIGINT PRIMARY KEY,
- MaintDate DATETIME NOT NULL,
- BikeID BIGINT NOT NULL FOREIGN KEY REFERENCES Bike,
- );
- GO
- CREATE TABLE Repair (
- MaintID BIGINT PRIMARY KEY FOREIGN KEY REFERENCES Maintenance,
- );
- GO
- CREATE TABLE MaintItem (
- MaintID BIGINT NOT NULL FOREIGN KEY REFERENCES Maintenance,
- SNo BIGINT NOT NULL,
- Descr TEXT NULL,
- CONSTRAINT PK_MaintItem PRIMARY KEY (MaintID, SNo),
- );
- GO
- CREATE TABLE MaintType (
- TypeCode INT PRIMARY KEY,
- TypeDesc TEXT NULL,
- );
- GO
- CREATE TABLE Feedback (
- FBID BIGINT PRIMARY KEY,
- FBDateTime DATETIME NOT NULL,
- MemberID BIGINT NOT NULL FOREIGN KEY REFERENCES Member,
- );
- GO
- CREATE TABLE Comment (
- FBID BIGINT PRIMARY KEY FOREIGN KEY REFERENCES Feedback,
- Message TEXT NOT NULL,
- );
- GO
- CREATE TABLE Fault (
- FBID BIGINT PRIMARY KEY FOREIGN KEY REFERENCES Feedback,
- FaultCode SMALLINT NOT NULL FOREIGN KEY REFERENCES FaultType,
- MaintID BIGINT NULL FOREIGN KEY REFERENCES Repair,
- BikeID BIGINT NOT NULL FOREIGN KEY REFERENCES Bike,
- );
- GO
- CREATE TABLE Reservation (
- MemberID BIGINT FOREIGN KEY REFERENCES Member,
- BikeID BIGINT FOREIGN KEY REFERENCES Bike,
- ResStatus VARCHAR(15) NOT NULL CHECK (ResStatus IN ('Confirmed', 'Cancelled', 'NoShow')),
- DateTimeRes DATETIME NOT NULL,
- DateTimeReservedFor DATETIME NOT NULL,
- CONSTRAINT PK_Reservation PRIMARY KEY (MemberID, BikeID),
- CONSTRAINT CHK_DateTime CHECK (DateTimeRes < DateTimeReservedFor),
- )
- GO
- SELECT * FROM FaultType;
- SELECT * FROM Member;
- SELECT * FROM BikeStop;
- SELECT * FROM Bike;
- GO
Add Comment
Please, Sign In to add comment