Physical Design (SQL Implementation)
sqlCopyEdit-- Creating the Customer Table
CREATE TABLE Customer (
CustomerID INT PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(100) NOT NULL,
Email VARCHAR(150) UNIQUE NOT NULL,
Phone VARCHAR(20) NOT NULL
);
-- Creating the Orders Table
CREATE TABLE Orders (
OrderID INT PRIMARY KEY AUTO_INCREMENT,
CustomerID INT NOT NULL,
OrderDate DATETIME DEFAULT CURRENT_TIMESTAMP,
TotalAmount DECIMAL(10,2) NOT NULL,
FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID) ON DELETE CASCADE
);
-- Creating the Product Table
CREATE TABLE Product (
ProductID INT PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(255) NOT NULL,
Price DECIMAL(10,2) NOT NULL,
Stock INT CHECK (Stock >= 0)
);
-- Creating the OrderDetails Table (Many-to-Many Relationship)
CREATE TABLE OrderDetails (
OrderID INT NOT NULL,
ProductID INT NOT NULL,
Quantity INT CHECK (Quantity > 0),
Subtotal DECIMAL(10,2) NOT NULL,
PRIMARY KEY (OrderID, ProductID),
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID) ON DELETE CASCADE,
FOREIGN KEY (ProductID) REFERENCES Product(ProductID) ON DELETE CASCADE
);