Default Component - Copy this React, Tailwind Component to your project
Tạo theo cái database này CREATE DATABASE ECommerceDB; USE ECommerceDB; -- Person table (Superclass) CREATE TABLE Person ( userID INT PRIMARY KEY IDENTITY(1,1), name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL ); -- Customer table (inherits from Person) CREATE TABLE Customer ( customerID INT PRIMARY KEY, FOREIGN KEY (customerID) REFERENCES Person(userID) ON DELETE CASCADE ); -- Admin table (inherits from Person) CREATE TABLE Admin ( adminID INT PRIMARY KEY, FOREIGN KEY (adminID) REFERENCES Person(userID) ON DELETE CASCADE ); -- Delivery Service table (inherits from Person) CREATE TABLE DeliveryService ( deliveryID INT PRIMARY KEY, FOREIGN KEY (deliveryID) REFERENCES Person(userID) ON DELETE CASCADE ); -- Product table CREATE TABLE Product ( productID INT PRIMARY KEY IDENTITY(1,1), name VARCHAR(100) NOT NULL, description TEXT, price DECIMAL(10,2) NOT NULL, stock INT NOT NULL ); -- Cart table (Each customer has one cart) CREATE TABLE Cart ( cartID INT PRIMARY KEY IDENTITY(1,1), customerID INT UNIQUE, FOREIGN KEY (customerID) REFERENCES Customer(customerID) ON DELETE CASCADE ); -- Cart Items table (Many-to-Many relationship between Cart and Product) CREATE TABLE CartItem ( cartID INT, productID INT, quantity INT NOT NULL CHECK (quantity > 0), PRIMARY KEY (cartID, productID), FOREIGN KEY (cartID) REFERENCES Cart(cartID) ON DELETE CASCADE, FOREIGN KEY (productID) REFERENCES Product(productID) ON DELETE CASCADE ); -- Order table CREATE TABLE "Order" ( orderID INT PRIMARY KEY IDENTITY(1,1), customerID INT, orderDate DATE NOT NULL, status VARCHAR(50) NOT NULL CHECK (status IN ('Pending', 'Shipped', 'Delivered', 'Cancelled')), FOREIGN KEY (customerID) REFERENCES Customer(customerID) ON DELETE CASCADE ); -- Order Items table (Many-to-Many relationship between Order and Product) CREATE TABLE OrderItem ( orderID INT, productID INT, quantity INT NOT NULL CHECK (quantity > 0), PRIMARY KEY (orderID, productID), FOREIGN KEY (orderID) REFERENCES "Order"(orderID) ON DELETE CASCADE, FOREIGN KEY (productID) REFERENCES Product(productID) ON DELETE CASCADE ); -- Payment table CREATE TABLE Payment ( paymentID INT PRIMARY KEY IDENTITY(1,1), orderID INT UNIQUE, amount DECIMAL(10,2) NOT NULL CHECK (amount > 0), method VARCHAR(50) NOT NULL CHECK (method IN ('Credit Card', 'Debit Card', 'PayPal', 'Cash On Delivery')), FOREIGN KEY (orderID) REFERENCES "Order"(orderID) ON DELETE CASCADE ); -- Feedback table CREATE TABLE Feedback ( feedbackID INT PRIMARY KEY IDENTITY(1,1), customerID INT, orderID INT, comment TEXT, rating INT CHECK (rating BETWEEN 1 AND 5), FOREIGN KEY (customerID) REFERENCES Customer(customerID) ON DELETE CASCADE, FOREIGN KEY (orderID) REFERENCES "Order"(orderID) ON DELETE NO ACTION ); -- Delivery Request table (for assigning orders to delivery service) CREATE TABLE DeliveryRequest ( requestID INT PRIMARY KEY IDENTITY(1,1), orderID INT UNIQUE, deliveryID INT, status VARCHAR(50) NOT NULL CHECK (status IN ('Pending', 'In Transit', 'Delivered')), FOREIGN KEY (orderID) REFERENCES "Order"(orderID) ON DELETE CASCADE, FOREIGN KEY (deliveryID) REFERENCES DeliveryService(deliveryID) ON DELETE NO ACTION ); drop database ECommerceDB -- Select all users (Person) SELECT * FROM Person; SELECT * FROM Customer; SELECT * FROM Admin; SELECT * FROM DeliveryService; SELECT * FROM Product; SELECT * FROM Cart; SELECT * FROM CartItem; SELECT * FROM "Order"; SELECT * FROM OrderItem; SELECT * FROM Payment; SELECT * FROM Feedback; SELECT * FROM DeliveryRequest;
