iShare (AiShare) 数据库设计文档
模块: as-app-server — iShare 项目新增的核心业务模块(pigx-5.2 原版中不存在)
生成日期: 2026-02-16
一、数据库表清单
1. 核心业务表(as_* — iShare 新增)
| 表名 |
用途 |
as_platform |
流媒体平台(Netflix、Spotify 等) |
as_platform_type |
平台分类(视频、音乐等) |
as_sub_plan |
订阅计划(如 Netflix 标准版、高级版) |
as_sub_payroll |
付费方案(月付/季付/年付 + 价格) |
as_sub_account |
订阅账号(实际的平台登录凭据) |
as_sub_product |
订阅产品(面向用户的合租商品) |
as_sub_product_comment |
产品评价 |
as_user_sub |
用户订阅关系(用户参与的合租) |
2. App 基础表(app_* — 来自 pigx-app 模板,SQL 中有建表语句)
| 表名 |
用途 |
app_user |
App 用户 |
app_role |
App 角色 |
app_user_role |
用户-角色关联 |
app_social_details |
社交登录配置(微信小程序等) |
app_article |
文章资讯 |
app_article_category |
文章分类 |
app_article_collect |
文章收藏 |
app_page |
页面装修(首页/个人中心 JSON 配置) |
app_tabbar |
底部导航栏 |
二、核心业务表详细结构
2.1 as_platform — 流媒体平台
| 字段 |
类型 |
说明 |
id |
bigint (PK, ASSIGN_ID) |
主键 |
platform_name |
varchar |
平台名称 |
platform_type |
int |
平台类型(关联 as_platform_type),0=全部 |
icon |
varchar |
应用图标 URL |
company |
varchar |
所属公司 |
website |
varchar |
平台官网 |
sort_order |
varchar |
排序 |
product_code |
varchar |
产品编码(格式: 类型_名称_id) |
2.2 as_platform_type — 平台类型
| 字段 |
类型 |
说明 |
id |
bigint (PK, ASSIGN_ID) |
主键 |
name |
varchar |
类型名称(如:视频、音乐、AI) |
platform_type |
int |
类型编号,0=全部 |
sort_order |
varchar |
排序 |
2.3 as_sub_plan — 订阅计划
| 字段 |
类型 |
说明 |
id |
bigint (PK, ASSIGN_ID) |
计划 ID |
name |
varchar |
计划名称(如:标准版、高级版) |
platform_id |
varchar |
所属平台 ID |
capacity |
varchar |
用户容量(可共享席位数) |
remark |
varchar |
备注 |
sort_order |
varchar |
排序 |
2.4 as_sub_payroll — 付费方案
| 字段 |
类型 |
说明 |
id |
bigint (PK, ASSIGN_ID) |
主键 |
sub_plans |
bigint |
关联的订阅计划 ID |
platform_id |
int |
平台 ID |
payroll |
int |
付费周期:1=月付, 2=季付, 3=年付 |
price |
decimal |
价格 |
currency |
varchar |
货币(CNY/USD 等) |
region |
varchar |
地区 |
product_code |
varchar |
产品编码 |
2.5 as_sub_account — 订阅账号
| 字段 |
类型 |
说明 |
id |
bigint (PK, ASSIGN_ID) |
主键 |
product_id |
bigint |
关联产品 ID |
sub_plan_id |
int |
订阅计划 ID |
user_id |
int |
账号持有者(主用户) |
sub_payroll_id |
int |
付费方案 ID |
region |
varchar |
地区 |
share_type |
int |
分享类型 |
account_type |
int |
账号类型 |
renew_date |
datetime |
续费日期 |
platform_id |
int |
平台 ID |
account_name |
varchar |
平台登录用户名 |
account_passwd |
varchar |
平台登录密码 |
passwd_salt |
int |
密码盐值 |
2.6 as_sub_product — 订阅产品(合租商品)
| 字段 |
类型 |
说明 |
id |
bigint (PK, ASSIGN_ID) |
主键 |
star |
int |
综合评分 |
title |
varchar |
产品标题 |
description |
varchar |
描述 |
tags |
varchar |
标签(逗号分隔) |
sub_plan_ids |
varchar |
关联的订阅计划 ID 列表 |
amount |
decimal |
总价 |
user_id |
bigint |
发布者用户 ID |
product_type |
bigint |
产品类型:1=自营, 2=个人 |
create_time |
datetime |
创建时间 |
update_time |
datetime |
更新时间 |
product_code |
varchar |
产品编码(类型_名称_id) |
sub_type |
bigint |
订阅类型:1=单品, 2=多品(组合) |
注: 实体类 @TableName 误标为 as_sub_product,实际应为 as_sub_product_comment
| 字段 |
类型 |
说明 |
id |
bigint (PK, ASSIGN_ID) |
主键 |
star |
int |
评分 |
comment |
varchar |
评价内容 |
user_id |
bigint |
评价用户 |
product_id |
bigint |
关联产品 ID |
create_time |
datetime |
创建时间 |
update_time |
datetime |
更新时间 |
2.8 as_user_sub — 用户订阅关系
| 字段 |
类型 |
说明 |
id |
bigint (PK, ASSIGN_ID) |
主键 |
platform_id |
int |
平台 ID |
capacity |
int |
总容量(席位数) |
capacity_loaded |
int |
已占用容量 |
plan_id |
int |
订阅计划 ID |
user_id |
int |
用户 ID |
main_account |
int |
主账号 ID(关联 as_sub_account) |
region |
varchar |
地区 |
target_ip |
varchar |
目标 IP(用于区域限制) |
remark |
int |
备注 |
三、App 基础表详细结构
3.1 app_user — App 用户
| 字段 |
类型 |
约束 |
说明 |
user_id |
bigint |
PK |
用户 ID |
username |
varchar(255) |
|
用户名 |
password |
varchar(255) |
|
密码(BCrypt) |
salt |
varchar(255) |
|
盐值 |
phone |
varchar(20) |
|
手机号 |
avatar |
varchar(255) |
|
头像 |
nickname |
varchar(64) |
|
昵称 |
name |
varchar(64) |
|
姓名 |
email |
varchar(128) |
|
邮箱 |
wx_openid |
varchar(32) |
|
微信 OpenID |
lock_flag |
char(1) |
默认 '0' |
锁定状态 |
del_flag |
char(1) |
默认 '0' |
删除标志 |
tenant_id |
bigint |
NOT NULL |
租户 ID |
create_by/update_by |
varchar(64) |
|
操作人 |
create_time/update_time |
datetime |
|
时间戳 |
last_modified_time |
datetime |
|
最后密码修改时间 |
3.2 app_role — 角色表
| 字段 |
类型 |
说明 |
role_id |
bigint (PK) |
角色 ID |
role_name |
varchar(64) |
角色名 |
role_code |
varchar(64) |
角色编码(如 APP_USER) |
role_desc |
varchar(255) |
描述 |
tenant_id |
bigint |
租户 ID |
3.3 app_user_role — 用户角色关联
| 字段 |
类型 |
说明 |
user_id |
bigint (PK) |
用户 ID |
role_id |
bigint (PK) |
角色 ID |
3.4 其他 App 表
app_social_details: 社交登录配置(type/app_id/app_secret/redirect_url)
app_article: 文章(title/intro/content/author/visit/sort/cid→分类)
app_article_category: 文章分类(name/sort/is_show)
app_article_collect: 文章收藏(user_id/article_id)
app_page: 页面装修(page_type/page_name/page_data JSON)
app_tabbar: 底部导航(name/selected/unselected 图标/link JSON)
所有 app_* 表均包含 del_flag, create_by, update_by, create_time, update_time, tenant_id 公共字段。
四、ER 关系
五、核心业务模型总结
iShare 是一个 流媒体账号合租平台,核心业务流程:
关键业务概念
- 平台 (Platform): 流媒体服务商,按类型分类
- 订阅计划 (SubPlan): 平台的会员等级,定义席位容量
- 付费方案 (SubPayroll): 计划的定价策略(支持多地区多货币)
- 订阅账号 (SubAccount): 实际的平台账号密码,由主用户持有
- 订阅产品 (SubProduct): 合租商品,可组合多个计划,支持自营/个人发布
- 用户订阅 (UserSub): 用户加入合租的记录,跟踪席位占用
- 产品评价 (SubProductComment): 用户对合租产品的评分和评论
代码注意事项
⚠️ AsSubProductComment 实体类的 @TableName("as_sub_product") 可能是 bug,应为 as_sub_product_comment。
六、SQL 建表语句
核心业务表(as_*)没有在 SQL 脚本中找到建表语句,仅在 Java 实体类中定义。这些表可能通过以下方式创建:
- MyBatis-Plus 自动建表
- 手动在数据库中创建
- 尚未提交的 migration 脚本
App 基础表的完整建表语句见: db/999pigxx_app.sql