蓝桉云顶

Good Luck To You!

如何设计一个高效的商城数据库表结构?

``sql,CREATE TABLE Products (, ProductID INT PRIMARY KEY,, ProductName VARCHAR(255),, Category VARCHAR(100),, Price DECIMAL(10, 2),, Stock INT,);,,CREATE TABLE Users (, UserID INT PRIMARY KEY,, Username VARCHAR(255),, Password VARCHAR(255),, Email VARCHAR(255),);,,CREATE TABLE Orders (, OrderID INT PRIMARY KEY,, UserID INT,, OrderDate DATETIME,, FOREIGN KEY (UserID) REFERENCES Users(UserID),);,,CREATE TABLE OrderDetails (, OrderDetailID INT PRIMARY KEY,, OrderID INT,, ProductID INT,, Quantity INT,, FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),, FOREIGN KEY (ProductID) REFERENCES Products(ProductID),);,``

在创建商城数据库表结构时,我们需要考虑到商品、用户、订单等实体及其相互关系,以下是一个基本的商城数据库表结构设计:

1、用户表(User)

字段名 数据类型 约束 说明
user_id int PRIMARY KEY, AUTO_INCREMENT 用户ID
username varchar(50) NOT NULL, UNIQUE 用户名
password varchar(255) NOT NULL 密码
email varchar(100) NOT NULL, UNIQUE 邮箱
phone varchar(20) 电话
created_at datetime DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 更新时间

2、商品表(Product)

字段名 数据类型 约束 说明
product_id int PRIMARY KEY, AUTO_INCREMENT 商品ID
name varchar(100) NOT NULL 商品名称
description text 商品描述
price decimal(10,2) NOT NULL 价格
stock int NOT NULL, DEFAULT 0 库存数量
created_at datetime DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 更新时间

3、商品分类表(Category)

字段名 数据类型 约束 说明
category_id int PRIMARY KEY, AUTO_INCREMENT 分类ID
name varchar(50) NOT NULL, UNIQUE 分类名称
parent_id int DEFAULT NULL 父级分类ID,用于实现多级分类
created_at datetime DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 更新时间

4、商品与分类关联表(ProductCategory)

字段名 数据类型 约束 说明
product_id int PRIMARY KEY, FOREIGN KEY REFERENCES Product(product_id) ON DELETE CASCADE 商品ID
category_id int PRIMARY KEY, FOREIGN KEY REFERENCES Category(category_id) ON DELETE CASCADE 分类ID

5、订单表(Order)

字段名 数据类型 约束 说明
order_id int PRIMARY KEY, AUTO_INCREMENT 订单ID
user_id int FOREIGN KEY REFERENCES User(user_id) ON DELETE CASCADE 用户ID
total_price decimal(10,2) NOT NULL 总价
status varchar(20) NOT NULL, DEFAULT 'pending' 订单状态,如:待支付、已支付、已发货、已完成、已取消等
created_at datetime DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 更新时间

6、订单商品表(OrderItem)

字段名 数据类型 约束 说明
order_item_id int PRIMARY KEY, AUTO_INCREMENT 订单商品ID
order_id int FOREIGN KEY REFERENCES Order(order_id) ON DELETE CASCADE 订单ID
product_id int FOREIGN KEY REFERENCES Product(product_id) ON DELETE CASCADE 商品ID
quantity int NOT NULL, DEFAULT 1 购买数量
price decimal(10,2) NOT NULL 单价,可能与商品表中的价格不同,因为可能存在促销活动等

7、购物车表(Cart)

字段名 数据类型 约束 说明
cart_id int PRIMARY KEY, AUTO_INCREMENT 购物车ID
user_id int FOREIGN KEY REFERENCES User(user_id) ON DELETE CASCADE 用户ID
product_id int FOREIGN KEY REFERENCES Product(product_id) ON DELETE CASCADE 商品ID
quantity int NOT NULL, DEFAULT 1 购买数量
added_at datetime DEFAULT CURRENT_TIMESTAMP 加入购物车时间

8、地址表(Address)

字段名 数据类型 约束 说明
address_id int PRIMARY KEY, AUTO_INCREMENT 地址ID
user_id int FOREIGN KEY REFERENCES User(user_id) ON DELETE CASCADE 用户ID
recipient_name varchar(50) NOT NULL 收货人姓名
phone varchar(20) NOT NULL 电话
province varchar(50) NOT NULL 省份
city varchar(50) NOT NULL 城市
district varchar(50) NOT NULL 区县
detail varchar(255) NOT NULL 详细地址
is_default tinyint(1) NOT NULL, DEFAULT 0 是否为默认地址,1表示是,0表示否

9、评论表(Review)

字段名 数据类型 约束 说明
review_id int PRIMARY KEY, AUTO_INCREMENT 评论ID
product_id int FOREIGN KEY REFERENCES Product(product_id) ON DELETE CASCADE 商品ID
user_id int FOREIGN KEY REFERENCES User(user_id) ON DELETE CASCADE 用户ID
rating int(11) NOT NULL, CHECK (rating >= 1 AND rating<= 5) 评分,1-5分
content text NOT NULL, CHECK (LENGTH(content) > 0) 评论内容,要求非空且长度大于0个字符

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接