QUERY-SQL
QUERY-SQL
-- Recharge Plans
CREATE TABLE RechargePlans (
PlanID INT IDENTITY(1,1) PRIMARY KEY,
PlanType VARCHAR(20) CHECK (PlanType IN ('TopUp', 'Special')),
Amount DECIMAL(10,2) NOT NULL,
TalkTime DECIMAL(10,2),
Validity INT CHECK (Validity > 0) NOT NULL,
Description VARCHAR(255)
);
-- Transactions
CREATE TABLE Transactions (
TransactionID INT IDENTITY(1,1) PRIMARY KEY,
UserID INT FOREIGN KEY REFERENCES Users(UserID),
MobileNumber VARCHAR(10) NOT NULL CHECK (MobileNumber LIKE '[0-9][0-9][0-9][0-
9][0-9][0-9][0-9][0-9][0-9][0-9]'),
PlanID INT FOREIGN KEY REFERENCES RechargePlans(PlanID),
PaymentStatus VARCHAR(20) CHECK (PaymentStatus IN ('Pending', 'Completed',
'Failed')),
TransactionDate DATETIME DEFAULT GETDATE()
);
-- Feedback Table
CREATE TABLE Feedback (
FeedbackID INT IDENTITY(1,1) PRIMARY KEY,
UserID INT NULL FOREIGN KEY REFERENCES Users(UserID),
Message TEXT NOT NULL,
CreatedAt DATETIME DEFAULT GETDATE()
);
-- Services Activation
CREATE TABLE Services (
ServiceID INT IDENTITY(1,1) PRIMARY KEY,
ServiceName VARCHAR(50) UNIQUE NOT NULL
);
-- User Services (Mapping table for activated services)
CREATE TABLE UserServices (
UserServiceID INT IDENTITY(1,1) PRIMARY KEY,
UserID INT FOREIGN KEY REFERENCES Users(UserID),
ServiceID INT FOREIGN KEY REFERENCES Services(ServiceID),
Status VARCHAR(20) CHECK (Status IN ('Active', 'Inactive')) NOT NULL,
ActivatedAt DATETIME DEFAULT GETDATE()
);
-- Customer Care
CREATE TABLE CustomerCare (
ContactID INT IDENTITY(1,1) PRIMARY KEY,
ContactNumber VARCHAR(15) NOT NULL,
Email VARCHAR(100) NOT NULL
);