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

4.7 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_hash varchar(255) 密码哈希 非空
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. 数据库连接信息

生产环境:

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

连接池配置:

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

6. 字符编码和时区

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

本文档最后更新: 2024年1月 数据库版本: MySQL 8.0