一、ER图描述

1. 实体:用户
属性:用户ID、用户名、密码哈希、邮箱、手机号、注册时间、最后登录时间
关系:用户与订单是一对多关系,用户与收货地址是一对多关系

2. 实体:商品
属性:商品ID、商品名称、商品描述、价格、库存数量、分类ID、上架状态
关系:商品与订单项是一对多关系,商品与分类是多对一关系

3. 实体:订单
属性:订单ID、用户ID、订单金额、支付状态、物流状态、创建时间
关系:订单与订单项是一对多关系,订单与支付记录是一对一关系

4. 实体:订单项
属性:订单项ID、订单ID、商品ID、购买数量、单价
关系:订单项与商品是多对一关系

二、表结构说明

1. 用户表(users)
字段:
- user_id (主键):用户唯一标识
- username:用户名(长度3-20字符)
- password_hash:密码加密存储
- email:邮箱地址
- phone_number:手机号码
- is_active:账户状态(0禁用/1启用)

2. 商品表(products)
字段:
- product_id (主键):商品唯一标识
- product_name:商品名称
- description:商品描述
- price:价格(精确到小数点后两位)
- stock_quantity:库存数量
- category_id:外键关联分类表

3. 订单表(orders)
字段:
- order_id (主键):订单唯一标识
- user_id:外键关联用户表
- total_amount:订单总金额
- payment_status:支付状态(0未支付/1已支付)
- shipping_status:物流状态(0待发货/1已发货)

三、字段详细说明

1. users表
- user_id:bigint类型,自增主键
- username:varchar(20)非空唯一
- password_hash:char(60)存储bcrypt加密结果
- email:varchar(100)唯一索引

2. products表
- product_id:bigint主键
- price:decimal(10,2) unsigned
- stock_quantity:int默认值0

3. orders表
- order_id:varchar(32)主键(日期+随机码)
- total_amount:decimal(10,2) unsigned not null
- created_at:timestamp默认当前时间

四、系统约束说明

1. 外键约束:所有涉及关联表字段均设置外键约束
2. 唯一约束:用户名、邮箱、手机号需唯一
3. 非空约束:用户密码、商品价格等关键字段设为非空
4. 索引策略:对高频查询字段(email、商品名称)建立索引