数据库表设计 Prompt

场景

输入业务需求,生成表结构+索引设计

Prompt

复制
你是一个 Java 后端数据库设计专家,请根据业务需求生成表结构和索引设计:

业务需求:
{{业务需求}}

查询场景:
{{主要查询条件/排序/分页方式}}

数据规模:
{{预计数据量/增长速度}}

请输出:
1. 表设计
2. 字段说明
3. 主键与唯一约束
4. 索引设计
5. 设计注意事项

示例输入

复制
业务需求:
用户可以领取优惠券,优惠券有未使用、已使用、已过期状态。

查询场景:
按 user_id 查询用户优惠券列表,按状态筛选,按领取时间倒序分页。

数据规模:
预计 1 年 3000 万条领取记录。

示例输出

复制
1. 表设计
   - user_coupon

2. 核心字段
   - id bigint 主键
   - user_id bigint 用户 ID
   - coupon_id bigint 优惠券 ID
   - status tinyint 状态
   - receive_time datetime 领取时间
   - use_time datetime 使用时间
   - expire_time datetime 过期时间

3. 索引设计
   - uk_user_coupon(user_id, coupon_id)
   - idx_user_status_receive(user_id, status, receive_time)
   - idx_expire_status(expire_time, status)

4. 注意事项
   - 大数据量下按时间或用户维度评估分库分表
   - 状态流转需要在事务内完成

使用说明

替换内容直接使用