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

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 评分,1-5分
content text NOT NULL, CHECK (LENGTH(content) > 0) 评论内容,要求非空且长度大于0个字符

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1403703.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希的头像未希新媒体运营
上一篇 2024-12-13 18:46
下一篇 2024-12-13 18:49

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入