商城小程序数据库表结构文档

1. 数据库概述

数据库名称: mall
字符集: utf8mb4
排序规则: utf8mb4_general_ci
数据库引擎: InnoDB

本数据库为商城小程序系统提供数据存储支持,包含用户管理、商品管理、订单管理、购物车、地址管理等核心功能模块。

2. 数据库表关系图

admin_user int id PK varchar username varchar password tinyint status datetime create_time datetime update_time user int id PK varchar openid varchar nickname varchar avatar_url datetime create_time datetime update_time category int id PK varchar name varchar image_url int sort datetime create_time datetime update_time goods int id PK int category_id FK varchar name decimal price int stock varchar image_url text detail tinyint status tinyint is_recommend datetime create_time datetime update_time orders int id PK varchar order_no int user_id FK decimal total_amount tinyint status varchar receiver_name varchar receiver_phone text receiver_address datetime pay_time varchar transaction_id timestamp created_at timestamp updated_at order_goods int id PK int order_id FK int goods_id FK varchar goods_name varchar goods_image decimal goods_price int quantity timestamp created_at address int id PK int user_id FK varchar receiver_name varchar receiver_phone varchar province varchar city varchar district text detail_address tinyint is_default timestamp created_at timestamp updated_at cart int id PK int user_id FK int goods_id FK int quantity tinyint selected datetime create_time datetime update_time banner int id PK varchar image_url varchar link_url int sort tinyint status datetime create_time datetime update_time page_view int id PK int user_id FK varchar page datetime create_time 下单 收货地址 购物车 访问记录 商品分类 加入购物车 订单商品 包含商品

3. 数据表详细结构

3.1 管理员用户表 (admin_user)

表用途: 存储后台管理系统的管理员账号信息

字段名 数据类型 是否必填 默认值 注释
id int(11) AUTO_INCREMENT 主键,管理员ID
username varchar(50) - 用户名,唯一
password varchar(32) - 密码(MD5加密)
status tinyint(1) 1 状态:0禁用,1启用
create_time datetime CURRENT_TIMESTAMP 创建时间
update_time datetime CURRENT_TIMESTAMP 更新时间

主键: id
唯一索引: username
外键关系:

3.2 小程序用户表 (user)

表用途: 存储小程序用户的基本信息

字段名 数据类型 是否必填 默认值 注释
id int AUTO_INCREMENT 主键,用户ID
openid varchar(100) - 微信openid,唯一
nickname varchar(50) - 用户昵称
avatar_url varchar(255) - 头像URL
create_time datetime CURRENT_TIMESTAMP 创建时间
update_time datetime CURRENT_TIMESTAMP 更新时间

主键: id
唯一索引: openid
外键关系:

3.3 商品分类表 (category)

表用途: 存储商品分类信息

字段名 数据类型 是否必填 默认值 注释
id int AUTO_INCREMENT 主键,分类ID
name varchar(50) - 分类名称
image_url varchar(255) - 分类图片URL
sort int 0 排序(数字越大越靠前)
create_time datetime CURRENT_TIMESTAMP 创建时间
update_time datetime CURRENT_TIMESTAMP 更新时间

主键: id
外键关系:

3.4 商品表 (goods)

表用途: 存储商品的详细信息

字段名 数据类型 是否必填 默认值 注释
id int AUTO_INCREMENT 主键,商品ID
category_id int - 分类ID,外键
name varchar(100) - 商品名称
price decimal(10,2) - 商品价格
stock int 0 库存数量
image_url varchar(255) - 商品主图URL
detail text - 商品详情
status tinyint 1 状态:0下架,1上架
is_recommend tinyint 0 是否推荐:0不推荐,1推荐
create_time datetime CURRENT_TIMESTAMP 创建时间
update_time datetime CURRENT_TIMESTAMP 更新时间

主键: id
外键关系: category_id → category(id)
索引:

  • idx_status (status)
  • idx_category_status (category_id, status)

3.5 订单表 (orders)

表用途: 存储订单的基本信息

字段名 数据类型 是否必填 默认值 注释
id int(11) AUTO_INCREMENT 主键,订单ID
order_no varchar(50) - 订单号,唯一
user_id int(11) - 用户ID,外键
total_amount decimal(10,2) - 订单总金额
status tinyint(4) 0 订单状态:0待支付,1已支付,2已发货,3已完成
receiver_name varchar(50) - 收货人姓名
receiver_phone varchar(20) - 收货人电话
receiver_address text - 收货地址
pay_time datetime NULL 支付时间
transaction_id varchar(100) NULL 支付交易号
created_at timestamp CURRENT_TIMESTAMP 创建时间
updated_at timestamp CURRENT_TIMESTAMP 更新时间

主键: id
唯一索引: order_no
外键关系: user_id → user(id)
索引:

  • idx_user_id (user_id)
  • idx_create_time (created_at)
  • idx_status (status)
  • idx_create_status (created_at, status)

3.6 订单商品表 (order_goods)

表用途: 存储订单中包含的商品明细信息

字段名 数据类型 是否必填 默认值 注释
id int(11) AUTO_INCREMENT 主键,订单商品ID
order_id int(11) - 订单ID,外键
goods_id int(11) - 商品ID,外键
goods_name varchar(100) - 商品名称(冗余存储)
goods_image varchar(255) - 商品图片(冗余存储)
goods_price decimal(10,2) - 购买时价格
quantity int(11) - 购买数量
created_at timestamp CURRENT_TIMESTAMP 创建时间

主键: id
外键关系:

  • order_id → orders(id)
  • goods_id → goods(id)

索引:

  • idx_order_id (order_id)
  • idx_goods_id (goods_id)
  • idx_price_quantity (goods_price, quantity)

3.7 收货地址表 (address)

表用途: 存储用户的收货地址信息

字段名 数据类型 是否必填 默认值 注释
id int(11) AUTO_INCREMENT 主键,地址ID
user_id int(11) - 用户ID,外键
receiver_name varchar(50) - 收货人姓名
receiver_phone varchar(20) - 收货人电话
province varchar(50) - 省份
city varchar(50) - 城市
district varchar(50) - 区县
detail_address text - 详细地址
is_default tinyint(1) 0 是否默认地址:0否,1是
created_at timestamp CURRENT_TIMESTAMP 创建时间
updated_at timestamp CURRENT_TIMESTAMP 更新时间

主键: id
外键关系: user_id → user(id)
索引: idx_user_id (user_id)

3.8 购物车表 (cart)

表用途: 存储用户购物车中的商品信息

字段名 数据类型 是否必填 默认值 注释
id int AUTO_INCREMENT 主键,购物车ID
user_id int - 用户ID,外键
goods_id int - 商品ID,外键
quantity int 1 商品数量
selected tinyint 1 是否选中:0未选中,1选中
create_time datetime CURRENT_TIMESTAMP 创建时间
update_time datetime CURRENT_TIMESTAMP 更新时间

主键: id
外键关系:

  • user_id → user(id)
  • goods_id → goods(id)

3.9 轮播图表 (banner)

表用途: 存储首页轮播图信息

字段名 数据类型 是否必填 默认值 注释
id int AUTO_INCREMENT 主键,轮播图ID
image_url varchar(255) - 图片URL
link_url varchar(255) - 跳转链接
sort int 0 排序(数字越大越靠前)
status tinyint 1 状态:0禁用,1启用
create_time datetime CURRENT_TIMESTAMP 创建时间
update_time datetime CURRENT_TIMESTAMP 更新时间

主键: id
外键关系:

3.10 页面访问记录表 (page_view)

表用途: 记录用户的页面访问行为,用于数据统计分析

字段名 数据类型 是否必填 默认值 注释
id int(11) AUTO_INCREMENT 主键,记录ID
user_id int(11) - 用户ID,外键
page varchar(100) - 页面路径
create_time datetime CURRENT_TIMESTAMP 访问时间

主键: id
外键关系: user_id → user(id)
索引: idx_user_time (user_id, create_time)

4. 数据库设计说明

4.1 设计原则

  1. 数据一致性:使用外键约束确保数据的引用完整性
  2. 性能优化:在常用查询字段上建立索引
  3. 数据冗余:在订单商品表中冗余存储商品信息,避免历史数据丢失
  4. 扩展性:预留字段便于后续功能扩展

4.2 核心业务流程

  1. 用户注册流程:通过微信授权获取openid,创建用户记录
  2. 商品浏览流程:分类 → 商品列表 → 商品详情
  3. 购物流程:加入购物车 → 选择商品 → 创建订单 → 支付
  4. 订单流程:待支付 → 已支付 → 已发货 → 已完成

4.3 数据安全

  1. 密码加密:管理员密码使用MD5加密存储
  2. 用户隐私:用户信息通过微信授权获取,不存储敏感信息
  3. 数据备份:建议定期备份重要业务数据

4.4 性能优化建议

  1. 索引优化:在查询频繁的字段上建立合适的索引
  2. 分页查询:对于大数据量的列表查询使用分页
  3. 缓存策略:对于热点数据可考虑使用Redis缓存
  4. 读写分离:高并发场景下可考虑主从数据库架构

5. 初始化数据

5.1 管理员账号

  • 用户名:admin
  • 密码:admin(MD5:21232f297a57a5a743894a0e4a801fc3)

5.2 建议初始化的基础数据

  • 商品分类:电子产品、服装鞋帽、食品饮料、家居用品等
  • 轮播图:首页展示图片
  • 推荐商品:设置部分商品为推荐状态

相关推荐
jjw_zyfx5 小时前
Ubuntu上vue3 vite使用MBTiles搭建地图服务器
服务器·数据库·ubuntu
2501_915921436 小时前
掌握 iOS 26 App 性能监控,从监测到优化的多工具组合流程
android·macos·ios·小程序·uni-app·cocoa·iphone
EndingCoder6 小时前
Node.js SQL数据库:MySQL/PostgreSQL集成
javascript·数据库·sql·mysql·postgresql·node.js
知识分享小能手6 小时前
uni-app 入门学习教程,从入门到精通, uni-app常用API的详细语法知识点(上)(5)
前端·javascript·vue.js·学习·微信小程序·小程序·uni-app
静听山水7 小时前
SQLite
数据库·sqlite
一匹电信狗7 小时前
【C++】手搓AVL树
服务器·c++·算法·leetcode·小程序·stl·visual studio
2501_916008897 小时前
手机 iOS 系统全解析,生态优势、开发机制与跨平台应用上架实践指南
android·ios·智能手机·小程序·uni-app·iphone·webview
草明7 小时前
clickhouse 检查是否有删除语句在执行
数据库·clickhouse
风语者日志8 小时前
攻防世界—easyupload
数据库·web安全·ctf·小白入门