Files
aijianhua/docs/数据库设计文档.md

4.9 KiB
Raw Blame History

爱鉴花项目数据库设计文档

1. 数据库概述

本项目使用MySQL 8.0+作为主数据库,存储用户、商品、订单、识别记录等核心业务数据。

2. 数据库表结构

2.1 用户表 (users)

字段名 类型 说明 约束
id bigint 用户ID 主键,自增
username varchar(50) 用户名 唯一索引
email varchar(100) 邮箱 唯一索引
phone varchar(20) 手机号 唯一索引
password varchar(255) 密码bcrypt加密 非空
real_name varchar(50) 真实姓名 可空
avatar_url varchar(255) 头像URL 可空
user_type enum 用户类型 非空
status tinyint 状态 默认1
last_login timestamp 最后登录时间 可空
created_at timestamp 创建时间 默认当前时间
updated_at timestamp 更新时间 自动更新

2.2 商品分类表 (categories)

字段名 类型 说明 约束
id int 分类ID 主键,自增
name varchar(100) 分类名称 非空
parent_id int 父分类ID 默认0
sort_order int 排序 默认0
status tinyint 状态 默认1
created_at timestamp 创建时间 默认当前时间
updated_at timestamp 更新时间 自动更新

2.3 商品表 (products)

字段名 类型 说明 约束
id bigint 商品ID 主键,自增
name varchar(200) 商品名称 非空
category_id int 分类ID 索引
price decimal(10,2) 价格 非空
stock int 库存 默认0
image varchar(255) 图片URL 可空
description text 商品描述 可空
status tinyint 状态 默认1
created_at timestamp 创建时间 默认当前时间
updated_at timestamp 更新时间 自动更新

2.4 订单表 (orders)

字段名 类型 说明 约束
id bigint 订单ID 主键,自增
user_id bigint 用户ID 非空,索引
total_amount decimal(10,2) 订单总额 非空
payment_status tinyint 支付状态 默认0
shipping_status tinyint 配送状态 默认0
shipping_address text 配送地址 可空
created_at timestamp 创建时间 默认当前时间
updated_at timestamp 更新时间 自动更新

2.5 订单商品表 (order_items)

字段名 类型 说明 约束
id bigint 订单项ID 主键,自增
order_id bigint 订单ID 非空,索引
product_id bigint 商品ID 非空,索引
quantity int 数量 非空
unit_price decimal(10,2) 单价 非空

2.6 识别记录表 (identifications)

字段名 类型 说明 约束
id bigint 记录ID 主键,自增
user_id bigint 用户ID 非空,索引
image_url varchar(255) 图片URL 非空
result text 识别结果 可空
confidence decimal(5,4) 置信度 可空
created_at timestamp 创建时间 默认当前时间

2.7 收货地址表 (addresses)

字段名 类型 说明 约束
id bigint 地址ID 主键,自增
user_id bigint 用户ID 非空,索引
recipient varchar(100) 收货人 非空
phone varchar(20) 手机号 非空
address text 详细地址 非空
is_default tinyint 是否默认 默认0
created_at timestamp 创建时间 默认当前时间
updated_at timestamp 更新时间 自动更新

3. 索引设计

3.1 唯一索引

  • users.phone: 手机号唯一索引
  • users.email: 邮箱唯一索引
  • users.username: 用户名唯一索引

3.2 普通索引

  • products.category_id: 商品分类索引
  • orders.user_id: 订单用户索引
  • orders.created_at: 订单时间索引
  • identifications.user_id: 识别记录用户索引
  • identifications.created_at: 识别时间索引
  • addresses.user_id: 地址用户索引

4. 测试数据统计

已插入的测试数据:

  • 用户数据: 3条
  • 商品分类: 7条
  • 商品数据: 5条
  • 订单数据: 3条
  • 订单商品: 4条
  • 识别记录: 3条
  • 收货地址: 3条

5. 数据库变更记录

2024-03-15 更新

  • 修复用户表缺少last_login字段的问题
  • 密码字段使用password采用bcrypt加密存储
  • 增加数据库初始化脚本包含默认管理员账号admin/admin123

5. 数据库连接信息

生产环境:

  • 主机: 129.211.213.226:9527
  • 数据库: ajhdata
  • 用户名: root
  • 密码: aiotAiot123!

连接池配置:

  • 最大连接数: 200
  • 最小连接数: 20
  • 超时时间: 30秒

6. 字符编码和时区

  • 字符编码: UTF8MB4支持emoji表情
  • 时区设置: 东八区(+08:00

本文档最后更新: 2024-03-15 数据库版本: MySQL 8.0+