设计一个在线商品商店的数据库模式涉及多个方面,包括产品、订单、用户、支付等。
用户表 (Users):
- UserID (主键)
- 用户名
- 密码
- 电子邮件
- 地址
- 电话号码
产品表 (Products):
- ProductID (主键)
- 产品名称
- 描述
- 价格
- 库存数量
- 分类ID (外键,连接到分类表)
分类表 (Categories):
- CategoryID (主键)
- 分类名称
订单表 (Orders):
- OrderID (主键)
- UserID (外键,连接到用户表)
- 订单日期
- 订单状态 (例如,已支付、已发货、已完成等)
订单详情表 (OrderDetails):
- OrderDetailID (主键)
- OrderID (外键,连接到订单表)
- ProductID (外键,连接到产品表)
- 数量
- 单价
支付表 (Payments):
- PaymentID (主键)
- OrderID (外键,连接到订单表)
- 付款日期
- 付款金额
- 付款状态 (例如,已支付、待支付)
购物车表 (ShoppingCart):
- CartID (主键)
- UserID (外键,连接到用户表)
- ProductID (外键,连接到产品表)
- 数量
HTML代码
当用户点击“添加到购物车”按钮时,相应的产品将被添加到购物车数组中,并且购物车的内容将被渲染到页面上。
在线商店
在线商店
购物车
SQL语句用于创建表、插入数据、查询数据等操作。以下是一个基本的SQL示例,包括创建表格、插入样本数据和查询产品的示例。
-- 创建用户表
CREATE TABLE Users (
UserID INT PRIMARY KEY,
UserName VARCHAR(255),
Password VARCHAR(255),
Email VARCHAR(255),
Address VARCHAR(255),
PhoneNumber VARCHAR(20)
);
-- 创建产品分类表
CREATE TABLE Categories (
CategoryID INT PRIMARY KEY,
CategoryName VARCHAR(255)
);
-- 创建产品表
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(255),
Description TEXT,
Price DECIMAL(10, 2),
StockQuantity INT,
CategoryID INT,
FOREIGN KEY (CategoryID) REFERENCES Categories(CategoryID)
);
-- 创建订单表
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
UserID INT,
OrderDate DATE,
OrderStatus VARCHAR(50),
FOREIGN KEY (UserID) REFERENCES Users(UserID)
);
-- 创建订单详情表
CREATE TABLE OrderDetails (
OrderDetailID INT PRIMARY KEY,
OrderID INT,
ProductID INT,
Quantity INT,
UnitPrice DECIMAL(10, 2),
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
-- 创建支付表
CREATE TABLE Payments (
PaymentID INT PRIMARY KEY,
OrderID INT,
PaymentDate DATE,
Amount DECIMAL(10, 2),
PaymentStatus VARCHAR(50),
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID)
);
-- 创建购物车表
CREATE TABLE ShoppingCart (
CartID INT PRIMARY KEY,
UserID INT,
ProductID INT,
Quantity INT,
FOREIGN KEY (UserID) REFERENCES Users(UserID),
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
-- 插入样本用户数据
INSERT INTO Users (UserID, UserName, Password, Email, Address, PhoneNumber)
VALUES (1, 'JohnDoe', 'password123', '[email protected]', '123 Main St', '555-1234');
-- 插入样本产品分类数据
INSERT INTO Categories (CategoryID, CategoryName)
VALUES (1, 'Electronics'), (2, 'Clothing'), (3, 'Home Goods');
-- 插入样本产品数据
INSERT INTO Products (ProductID, ProductName, Description, Price, StockQuantity, CategoryID)
VALUES
(1, 'Laptop', 'Powerful laptop for work and entertainment', 999.99, 50, 1),
(2, 'T-shirt', 'Comfortable cotton T-shirt', 19.99, 100, 2),
(3, 'Coffee Maker', 'Automatic coffee maker for your kitchen', 49.99, 30, 3);
-- 插入样本订单数据
INSERT INTO Orders (OrderID, UserID, OrderDate, OrderStatus)
VALUES (1, 1, '2024-01-27', 'Processing');
-- 插入样本订单详情数据
INSERT INTO OrderDetails (OrderDetailID, OrderID, ProductID, Quantity, UnitPrice)
VALUES (1, 1, 1, 2, 999.99), (2, 1, 2, 3, 19.99);
-- 插入样本支付数据
INSERT INTO Payments (PaymentID, OrderID, PaymentDate, Amount, PaymentStatus)
VALUES (1, 1, '2024-01-28', 2219.94, 'Paid');
-- 插入样本购物车数据
INSERT INTO ShoppingCart (CartID, UserID, ProductID, Quantity)
VALUES (1, 1, 3, 1);