Skip to content

CatchShop 积分模块数据字典

数据表概览

CatchShop 商城积分模块包含 5 个核心数据表:

表名中文名称用途
shop_point_products积分商品表存储可用积分兑换的商品信息
shop_point_product_category积分商品分类表积分商品的分类管理
shop_point_daily_sign_users用户签到统计表用户签到统计数据
shop_point_daily_sign_user_records用户签到记录表用户每次签到的详细记录
user_points_log积分变动日志表用户积分获取和消费的完整记录

1. shop_point_products - 积分商品表

表说明:存储可用积分兑换的商品信息,包括积分价格、库存、限购规则等。

字段名类型长度是否必填默认值说明
idint11-主键 ID
product_idint11-关联商品 ID,外键关联 shop_products.id
category_idint11-分类 ID,外键关联 shop_point_product_category.id
pointsint11-兑换所需积分数量
stockint110库存数量
salesint110销量统计
initial_salesint110初始销量(虚拟销量)
is_purchase_limittinyint10是否限购:1=限购,0=不限购
total_purchase_limitint110总限购数量
per_purchase_limitint110每单限购数量
sortint110排序权重,数值越大越靠前
statustinyint11状态:1=启用,0=禁用
creator_idint11-创建人 ID
created_atint10-创建时间戳
updated_atint10-更新时间戳
deleted_atint10-软删除时间戳

索引信息

  • PRIMARY KEY (id)
  • INDEX idx_product_id (product_id)
  • INDEX idx_category_id (category_id)
  • INDEX idx_status_sort (status, sort)

关联关系

  • product_idshop_products.id (商品基础信息)
  • category_idshop_point_product_category.id (积分商品分类)

2. shop_point_product_category - 积分商品分类表

表说明:积分商品的分类管理,用于商品分组和前端展示。

字段名类型长度是否必填默认值说明
idint11-主键 ID
namevarchar50-分类名称
sortint110排序权重,数值越大越靠前
statustinyint11状态:1=启用,0=禁用
creator_idint11-创建人 ID
created_atint10-创建时间戳
updated_atint10-更新时间戳
deleted_atint10-软删除时间戳

索引信息

  • PRIMARY KEY (id)
  • INDEX idx_status_sort (status, sort)
  • INDEX idx_name (name)

3. shop_point_daily_sign_users - 用户签到统计表

表说明:记录用户签到的统计数据,包括总积分、签到天数、首次和最近签到时间。

字段名类型长度是否必填默认值说明
idint11-主键 ID
user_idint11-用户 ID,外键关联用户表
total_pointsint110签到累计获得积分
sign_daysint110累计签到天数
first_sign_atint10-首次签到时间戳
last_sign_atint10-最近签到时间戳
deleted_atint10-软删除时间戳

索引信息

  • PRIMARY KEY (id)
  • UNIQUE KEY uk_user_id (user_id)
  • INDEX idx_sign_days (sign_days)
  • INDEX idx_last_sign_at (last_sign_at)

关联关系

  • user_idusers.id (用户基础信息)

4. shop_point_daily_sign_user_records - 用户签到记录表

表说明:记录用户每次签到的详细信息,包括获得的积分和签到描述。

字段名类型长度是否必填默认值说明
idint11-主键 ID
user_idint11-用户 ID,外键关联用户表
pointsint11-本次签到获得的积分
descriptionvarchar255-签到描述信息
created_atint10-签到时间戳
updated_atint10-更新时间戳
deleted_atint10-软删除时间戳

索引信息

  • PRIMARY KEY (id)
  • INDEX idx_user_id_created (user_id, created_at)
  • INDEX idx_created_at (created_at)

关联关系

  • user_idusers.id (用户基础信息)

5. user_points_log - 积分变动日志表

表说明:记录用户积分的所有变动情况,包括获取和消费,确保积分流水的完整性和可追溯性。

字段名类型长度是否必填默认值说明
idint11-主键 ID
user_idint11-用户 ID,外键关联用户表
amountint11-积分变动数量,正数为增加,负数为减少
descriptionvarchar255-变动描述/说明
remarkvarchar255-管理员备注
created_atint10-创建时间戳
updated_atint10-更新时间戳

索引信息

  • PRIMARY KEY (id)
  • INDEX idx_user_id_created (user_id, created_at)
  • INDEX idx_created_at (created_at)
  • INDEX idx_amount (amount)

关联关系

  • user_idusers.id (用户基础信息)

订单表相关字段

shop_orders 表中,与积分相关的字段:

字段名类型说明
points_amountint积分抵扣金额(分)
points_countint使用的积分数量
points_rewardint订单奖励积分

业务规则说明

积分商品规则

  1. 库存管理stock 字段记录实际库存,兑换时需检查库存充足性
  2. 限购规则
    • is_purchase_limit = 1 时启用限购
    • total_purchase_limit 限制用户总兑换数量
    • per_purchase_limit 限制单次兑换数量
  3. 销量统计sales 为实际销量,initial_sales 为虚拟销量,前端显示为两者之和

签到规则

  1. 唯一性:用户每天只能签到一次
  2. 连续性:通过缓存记录连续签到天数
  3. 奖励计算:基于连续签到天数和配置规则计算积分奖励

积分日志规则

  1. 完整性:所有积分变动必须记录日志
  2. 一致性:积分变动和日志记录必须在同一事务中完成
  3. 可追溯性:通过 descriptionremark 字段记录变动原因