学业邑规划 - 数据库设计文档
一、设计说明
1.1 数据库信息
- 数据库类型:SQL Server 2022
- 字符集:UTF-8
- 排序规则:Chinese_PRC_CI_AS
1.2 命名规范
- 表名:snake_case 命名,如
users、assessment_records
- 字段名:PascalCase 命名,如
UserId、CreateTime
- 主键:
Id(bigint 自增)
- 外键:
表名Id,如 UserId、OrderId
- 时间字段:
CreateTime、UpdateTime
- 状态字段:
Status
- 软删除:
IsDeleted(bit)
1.3 SQL 脚本位置
- 业务数据库:
server/MiAssessment/scripts/init_business_db.sql
- 管理后台数据库:
server/MiAssessment/scripts/init_admin_db.sql
1.3 通用字段
每张业务表包含以下通用字段:
| 字段 |
类型 |
说明 |
| Id |
bigint |
主键,自增 |
| CreateTime |
datetime2 |
创建时间 |
| UpdateTime |
datetime2 |
更新时间 |
| IsDeleted |
bit |
软删除标记,默认0 |
二、表结构设计
2.1 用户模块
2.1.1 users(用户表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| Uid |
nvarchar(6) |
是 |
- |
用户UID,6位数字 |
| OpenId |
nvarchar(64) |
是 |
- |
微信OpenId |
| UnionId |
nvarchar(64) |
否 |
- |
微信UnionId |
| GzhOpenId |
nvarchar(64) |
否 |
- |
公众号OpenId |
| Phone |
nvarchar(20) |
否 |
- |
手机号 |
| Nickname |
nvarchar(50) |
否 |
- |
昵称 |
| Avatar |
nvarchar(500) |
否 |
- |
头像URL |
| UserLevel |
int |
是 |
1 |
用户等级:1普通用户 2合伙人 3渠道合伙人 |
| ParentUserId |
bigint |
否 |
- |
上级用户ID |
| InviteCode |
nvarchar(10) |
否 |
- |
用户专属邀请码 |
| Balance |
decimal(10,2) |
是 |
0 |
可提现余额 |
| TotalIncome |
decimal(10,2) |
是 |
0 |
累计收益 |
| WithdrawnAmount |
decimal(10,2) |
是 |
0 |
已提现金额 |
| Status |
int |
是 |
1 |
状态:0禁用 1正常 |
| IsTest |
int |
是 |
0 |
是否测试用户 |
| LastLoginTime |
datetime2 |
否 |
- |
最后登录时间 |
| LastLoginIp |
nvarchar(50) |
否 |
- |
最后登录IP |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
索引:
- UK_users_uid (Uid) UNIQUE
- UK_users_open_id (OpenId) UNIQUE
- IX_users_phone (Phone)
- IX_users_parent_user_id (ParentUserId)
- IX_users_user_level (UserLevel)
2.1.2 user_refresh_tokens(刷新令牌表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| UserId |
bigint |
是 |
- |
用户ID |
| TokenHash |
nvarchar(256) |
是 |
- |
Token哈希值 |
| ExpiresAt |
datetime2 |
是 |
- |
过期时间 |
| CreatedAt |
datetime2 |
是 |
GETDATE() |
创建时间 |
| CreatedByIp |
nvarchar(50) |
否 |
- |
创建IP |
| RevokedAt |
datetime2 |
否 |
- |
撤销时间 |
| RevokedByIp |
nvarchar(50) |
否 |
- |
撤销IP |
| ReplacedByToken |
nvarchar(256) |
否 |
- |
替换Token |
2.1.3 user_login_logs(登录日志表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| UserId |
bigint |
是 |
- |
用户ID |
| LoginType |
nvarchar(20) |
是 |
- |
登录类型 |
| LoginIp |
nvarchar(50) |
否 |
- |
登录IP |
| UserAgent |
nvarchar(500) |
否 |
- |
用户代理 |
| Platform |
nvarchar(20) |
否 |
- |
平台 |
| Status |
int |
是 |
1 |
状态:0失败 1成功 |
| FailReason |
nvarchar(200) |
否 |
- |
失败原因 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
2.2 内容管理模块
2.2.1 banners(轮播图表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| Title |
nvarchar(100) |
否 |
- |
标题 |
| ImageUrl |
nvarchar(500) |
是 |
- |
图片URL |
| LinkType |
int |
是 |
0 |
跳转类型:0无 1内部页面 2外部链接 3小程序 |
| LinkUrl |
nvarchar(500) |
否 |
- |
跳转地址 |
| AppId |
nvarchar(50) |
否 |
- |
小程序AppId |
| Sort |
int |
是 |
0 |
排序,越大越靠前 |
| Status |
int |
是 |
1 |
状态:0禁用 1启用 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
2.2.2 promotions(宣传图表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| Title |
nvarchar(100) |
否 |
- |
标题 |
| ImageUrl |
nvarchar(500) |
是 |
- |
图片URL |
| Position |
int |
是 |
1 |
位置:1首页底部 2团队页 |
| Sort |
int |
是 |
0 |
排序 |
| Status |
int |
是 |
1 |
状态:0禁用 1启用 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
2.3 测评模块
2.3.1 AssessmentType(测评类型表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| Name |
nvarchar(50) |
是 |
- |
测评名称 |
| Code |
nvarchar(50) |
是 |
- |
测评编码,如 MI(多元智能) |
| ImageUrl |
nvarchar(500) |
是 |
- |
入口图片 |
| IntroContent |
nvarchar(max) |
否 |
- |
介绍内容(富文本/图片) |
| Price |
decimal(10,2) |
是 |
0 |
价格 |
| QuestionCount |
int |
是 |
80 |
题目数量 |
| Sort |
int |
是 |
0 |
排序 |
| Status |
int |
是 |
1 |
状态:0已下线 1已上线 2即将上线 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
2.3.2 Question(题目表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| AssessmentTypeId |
bigint |
是 |
- |
测评类型ID |
| QuestionNo |
int |
是 |
- |
题号 |
| Content |
nvarchar(1000) |
是 |
- |
题目内容 |
| Sort |
int |
是 |
0 |
排序 |
| Status |
int |
是 |
1 |
状态:0禁用 1启用 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
索引:
- IX_Question_AssessmentTypeId (AssessmentTypeId)
- UK_Question_TypeNo (AssessmentTypeId, QuestionNo) UNIQUE
2.3.3 ReportCategory(报告分类表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| AssessmentTypeId |
bigint |
是 |
- |
测评类型ID |
| ParentId |
bigint |
否 |
0 |
父分类ID,0为顶级 |
| Name |
nvarchar(50) |
是 |
- |
分类名称 |
| Code |
nvarchar(50) |
是 |
- |
分类编码 |
| CategoryType |
int |
是 |
- |
分类类型:1八大智能 2个人特质 3细分能力 4先天学习 5学习能力 6大脑类型 7性格类型 8未来能力 |
| ScoreRule |
int |
是 |
1 |
计分规则:1累加(1-10分) 2二值(0/1分) |
| Sort |
int |
是 |
0 |
排序 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
索引:
- IX_ReportCategory_AssessmentTypeId (AssessmentTypeId)
- IX_ReportCategory_ParentId (ParentId)
2.3.4 QuestionCategoryMapping(题目分类映射表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| QuestionId |
bigint |
是 |
- |
题目ID |
| CategoryId |
bigint |
是 |
- |
分类ID |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
索引:
- IX_QuestionCategoryMapping_QuestionId (QuestionId)
- IX_QuestionCategoryMapping_CategoryId (CategoryId)
- UK_QuestionCategoryMapping (QuestionId, CategoryId) UNIQUE
2.3.5 ReportConclusion(报告结论表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| CategoryId |
bigint |
是 |
- |
分类ID |
| ConclusionType |
int |
是 |
- |
结论类型:1最强 2较强 3较弱 4最弱 |
| Title |
nvarchar(100) |
否 |
- |
结论标题 |
| Content |
nvarchar(max) |
是 |
- |
结论内容(富文本) |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
索引:
- IX_ReportConclusion_CategoryId (CategoryId)
2.4 测评记录模块
2.4.1 AssessmentRecord(测评记录表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| UserId |
bigint |
是 |
- |
用户ID |
| OrderId |
bigint |
是 |
- |
订单ID |
| AssessmentTypeId |
bigint |
是 |
- |
测评类型ID |
| Name |
nvarchar(50) |
是 |
- |
测评人姓名 |
| Phone |
nvarchar(20) |
是 |
- |
手机号 |
| Gender |
int |
是 |
- |
性别:1男 2女 |
| Age |
int |
是 |
- |
年龄 |
| EducationStage |
int |
是 |
- |
学业阶段:1小学及以下 2初中 3高中 4大专 5本科 6研究生及以上 |
| Province |
nvarchar(50) |
是 |
- |
省份 |
| City |
nvarchar(50) |
是 |
- |
城市 |
| District |
nvarchar(50) |
是 |
- |
区县 |
| Status |
int |
是 |
1 |
状态:1待测评 2测评中 3生成中 4已完成 |
| StartTime |
datetime2 |
否 |
- |
开始答题时间 |
| SubmitTime |
datetime2 |
否 |
- |
提交答题时间 |
| CompleteTime |
datetime2 |
否 |
- |
报告生成完成时间 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
索引:
- IX_AssessmentRecord_UserId (UserId)
- IX_AssessmentRecord_OrderId (OrderId)
- IX_AssessmentRecord_Status (Status)
2.4.2 AssessmentAnswer(测评答案表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| RecordId |
bigint |
是 |
- |
测评记录ID |
| QuestionId |
bigint |
是 |
- |
题目ID |
| QuestionNo |
int |
是 |
- |
题号 |
| AnswerValue |
int |
是 |
- |
答案值(1-10) |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
索引:
- IX_AssessmentAnswer_RecordId (RecordId)
- UK_AssessmentAnswer (RecordId, QuestionId) UNIQUE
2.4.3 AssessmentResult(测评结果表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| RecordId |
bigint |
是 |
- |
测评记录ID |
| CategoryId |
bigint |
是 |
- |
分类ID |
| Score |
decimal(10,2) |
是 |
- |
得分 |
| MaxScore |
decimal(10,2) |
是 |
- |
满分 |
| Percentage |
decimal(5,2) |
是 |
- |
百分比 |
| Rank |
int |
是 |
- |
排名(同类型内) |
| StarLevel |
int |
是 |
- |
星级(1-5) |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
索引:
- IX_AssessmentResult_RecordId (RecordId)
- IX_AssessmentResult_CategoryId (CategoryId)
2.5 订单模块
2.5.1 orders(订单表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| OrderNo |
nvarchar(32) |
是 |
- |
订单编号 |
| UserId |
bigint |
是 |
- |
用户ID |
| OrderType |
int |
是 |
- |
订单类型:1测评订单 2学业规划订单 |
| ProductId |
bigint |
是 |
- |
商品ID(测评类型ID/规划师ID) |
| ProductName |
nvarchar(100) |
是 |
- |
商品名称 |
| Amount |
decimal(10,2) |
是 |
- |
订单金额 |
| PayAmount |
decimal(10,2) |
是 |
- |
实付金额 |
| PayType |
int |
否 |
- |
支付方式:1微信支付 2邀请码 |
| InviteCodeId |
bigint |
否 |
- |
使用的邀请码ID |
| Status |
int |
是 |
1 |
状态:1待支付 2已支付 3已完成 4退款中 5已退款 6已取消 |
| PayTime |
datetime2 |
否 |
- |
支付时间 |
| TransactionId |
nvarchar(64) |
否 |
- |
微信支付交易号 |
| RefundTime |
datetime2 |
否 |
- |
退款时间 |
| RefundAmount |
decimal(10,2) |
否 |
- |
退款金额 |
| RefundReason |
nvarchar(500) |
否 |
- |
退款原因 |
| Remark |
nvarchar(500) |
否 |
- |
备注 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
索引:
- UK_orders_order_no (OrderNo) UNIQUE
- IX_orders_user_id (UserId)
- IX_orders_status (Status)
- IX_orders_create_time (CreateTime)
- IX_orders_order_type (OrderType)
2.5.2 order_notifies(订单通知表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| OrderNo |
nvarchar(64) |
是 |
- |
订单编号 |
| TransactionId |
nvarchar(64) |
否 |
- |
微信交易号 |
| NotifyUrl |
nvarchar(500) |
否 |
- |
通知URL |
| NonceStr |
nvarchar(64) |
否 |
- |
随机字符串 |
| PayTime |
datetime2 |
否 |
- |
支付时间 |
| PayAmount |
decimal(10,2) |
是 |
0 |
支付金额 |
| Status |
int |
是 |
0 |
状态:0待处理 1已处理 |
| RetryCount |
int |
是 |
0 |
重试次数 |
| Attach |
nvarchar(100) |
否 |
- |
附加数据 |
| OpenId |
nvarchar(100) |
否 |
- |
支付者OpenId |
| RawData |
nvarchar(max) |
否 |
- |
原始数据 |
| ErrorMessage |
nvarchar(500) |
否 |
- |
错误信息 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
2.6 学业规划模块
2.6.1 Planner(规划师表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| Name |
nvarchar(50) |
是 |
- |
姓名 |
| Avatar |
nvarchar(500) |
是 |
- |
头像 |
| Introduction |
nvarchar(1000) |
否 |
- |
简介 |
| Price |
decimal(10,2) |
是 |
- |
咨询价格 |
| Sort |
int |
是 |
0 |
排序 |
| Status |
int |
是 |
1 |
状态:0禁用 1启用 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
2.6.2 PlannerBooking(规划预约表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| UserId |
bigint |
是 |
- |
用户ID |
| OrderId |
bigint |
是 |
- |
订单ID |
| PlannerId |
bigint |
是 |
- |
规划师ID |
| BookingDate |
date |
是 |
- |
预约日期 |
| BookingTime |
nvarchar(20) |
是 |
- |
预约时间,如"15:00" |
| Name |
nvarchar(50) |
是 |
- |
姓名 |
| Phone |
nvarchar(20) |
是 |
- |
手机号 |
| Gender |
int |
是 |
- |
性别:1男 2女 |
| Grade |
int |
是 |
- |
年级:1小学 2初中 3高中 4大专 5本科 6研究生及以上 |
| MajorName |
nvarchar(100) |
否 |
- |
专业名称(大专及以上) |
| ScoreChinese |
int |
否 |
- |
语文成绩 |
| ScoreMath |
int |
否 |
- |
数学成绩 |
| ScoreEnglish |
int |
否 |
- |
英语成绩 |
| ScorePhysics |
int |
否 |
- |
物理成绩 |
| ScoreChemistry |
int |
否 |
- |
化学成绩 |
| ScoreBiology |
int |
否 |
- |
生物成绩 |
| ScoreGeography |
int |
否 |
- |
地理成绩 |
| ScorePolitics |
int |
否 |
- |
政治成绩 |
| Status |
int |
是 |
1 |
状态:1待确认 2已确认 3已完成 4已取消 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
索引:
- IX_PlannerBooking_UserId (UserId)
- IX_PlannerBooking_PlannerId (PlannerId)
- IX_PlannerBooking_BookingDate (BookingDate)
2.7 分销模块
2.7.1 InviteCode(邀请码表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| Code |
nvarchar(10) |
是 |
- |
邀请码(5位大写字母) |
| BatchNo |
nvarchar(32) |
否 |
- |
批次号 |
| AssignUserId |
bigint |
否 |
- |
分配给的用户ID(合伙人) |
| AssignTime |
datetime2 |
否 |
- |
分配时间 |
| UseUserId |
bigint |
否 |
- |
使用者用户ID |
| UseOrderId |
bigint |
否 |
- |
使用的订单ID |
| UseTime |
datetime2 |
否 |
- |
使用时间 |
| Status |
int |
是 |
1 |
状态:1未分配 2已分配 3已使用 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
索引:
- UK_InviteCode_Code (Code) UNIQUE
- IX_InviteCode_AssignUserId (AssignUserId)
- IX_InviteCode_Status (Status)
2.7.2 Commission(佣金记录表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| UserId |
bigint |
是 |
- |
获得佣金的用户ID |
| FromUserId |
bigint |
是 |
- |
来源用户ID(下级) |
| OrderId |
bigint |
是 |
- |
关联订单ID |
| OrderAmount |
decimal(10,2) |
是 |
- |
订单金额 |
| CommissionRate |
decimal(5,2) |
是 |
- |
佣金比例(如30.00表示30%) |
| CommissionAmount |
decimal(10,2) |
是 |
- |
佣金金额 |
| Level |
int |
是 |
- |
层级:1直接下级 2间接下级 |
| Status |
int |
是 |
1 |
状态:1待结算 2已结算 |
| SettleTime |
datetime2 |
否 |
- |
结算时间 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
索引:
- IX_Commission_UserId (UserId)
- IX_Commission_FromUserId (FromUserId)
- IX_Commission_OrderId (OrderId)
2.7.3 Withdrawal(提现记录表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| WithdrawalNo |
nvarchar(32) |
是 |
- |
提现单号 |
| UserId |
bigint |
是 |
- |
用户ID |
| Amount |
decimal(10,2) |
是 |
- |
提现金额 |
| BeforeBalance |
decimal(10,2) |
是 |
- |
提现前余额 |
| AfterBalance |
decimal(10,2) |
是 |
- |
提现后余额 |
| Status |
int |
是 |
1 |
状态:1申请中 2提现中 3已提现 4已取消 |
| AuditUserId |
bigint |
否 |
- |
审核人ID |
| AuditTime |
datetime2 |
否 |
- |
审核时间 |
| AuditRemark |
nvarchar(500) |
否 |
- |
审核备注 |
| PayTime |
datetime2 |
否 |
- |
打款时间 |
| PayTransactionId |
nvarchar(64) |
否 |
- |
打款交易号 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
索引:
- UK_Withdrawal_WithdrawalNo (WithdrawalNo) UNIQUE
- IX_Withdrawal_UserId (UserId)
- IX_Withdrawal_Status (Status)
2.8 系统配置模块
2.8.1 configs(系统配置表)
| 字段 |
类型 |
必填 |
默认值 |
说明 |
| Id |
bigint |
是 |
自增 |
主键 |
| ConfigKey |
nvarchar(100) |
是 |
- |
配置键 |
| ConfigValue |
nvarchar(max) |
是 |
- |
配置值 |
| ConfigType |
nvarchar(50) |
是 |
- |
配置类型 |
| Description |
nvarchar(500) |
否 |
- |
描述 |
| Sort |
int |
是 |
0 |
排序 |
| CreateTime |
datetime2 |
是 |
GETDATE() |
创建时间 |
| UpdateTime |
datetime2 |
是 |
GETDATE() |
更新时间 |
| IsDeleted |
bit |
是 |
0 |
软删除 |
索引:
- UK_configs_key (ConfigKey) UNIQUE
预置配置项:
| ConfigKey |
ConfigType |
说明 |
| assessment_price |
price |
测评价格 |
| commission_rate_level1 |
commission |
一级佣金比例 |
| commission_rate_level2 |
commission |
二级佣金比例 |
| commission_rate_direct |
commission |
无上级时直接佣金比例 |
| withdraw_min_amount |
withdraw |
最低提现金额 |
| service_phone |
contact |
客服电话 |
| service_wechat |
contact |
客服微信 |
| user_agreement_url |
agreement |
用户协议URL |
| privacy_policy_url |
agreement |
隐私政策URL |
| about_us_content |
content |
关于我们内容 |
三、ER关系图
┌─────────────┐ ┌─────────────────┐ ┌─────────────┐
│ User │────<│ Order │>────│ InviteCode │
└─────────────┘ └─────────────────┘ └─────────────┘
│ │
│ │
▼ ▼
┌─────────────┐ ┌─────────────────┐
│ Commission │ │AssessmentRecord │
└─────────────┘ └─────────────────┘
│ │
│ │
▼ ▼
┌─────────────┐ ┌─────────────────┐ ┌─────────────┐
│ Withdrawal │ │AssessmentAnswer │ │AssessmentResult│
└─────────────┘ └─────────────────┘ └─────────────┘
│ │
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Question │────────>│ReportCategory│
└─────────────┘ └─────────────┘
│ │
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────┐
│QuestionCategoryMapping│ │ReportConclusion│
└─────────────────────┘ └─────────────┘
四、核心业务关系说明
4.1 用户与分销关系
User.ParentUserId -> User.Id (自关联,上下级关系)
Commission.UserId -> User.Id (佣金归属)
Commission.FromUserId -> User.Id (佣金来源)
4.2 测评流程关系
Order -> AssessmentRecord -> AssessmentAnswer -> Question
-> AssessmentResult -> ReportCategory -> ReportConclusion
4.3 题目与分类映射
Question <-> QuestionCategoryMapping <-> ReportCategory
(多对多关系:一道题可属于多个分类,一个分类包含多道题)
五、数据字典
5.1 用户等级 (UserLevel)
| 值 |
说明 |
| 1 |
普通用户 |
| 2 |
合伙人 |
| 3 |
渠道合伙人 |
5.2 订单类型 (OrderType)
5.3 订单状态 (Order.Status)
| 值 |
说明 |
| 1 |
待支付 |
| 2 |
已支付 |
| 3 |
已完成 |
| 4 |
退款中 |
| 5 |
已退款 |
| 6 |
已取消 |
5.4 测评记录状态 (AssessmentRecord.Status)
| 值 |
说明 |
| 1 |
待测评 |
| 2 |
测评中 |
| 3 |
生成中 |
| 4 |
已完成 |
5.5 报告分类类型 (ReportCategory.CategoryType)
| 值 |
说明 |
| 1 |
八大智能 |
| 2 |
个人特质 |
| 3 |
细分能力 |
| 4 |
先天学习类型 |
| 5 |
学习关键能力 |
| 6 |
科学大脑类型 |
| 7 |
性格类型 |
| 8 |
未来发展能力 |
5.6 计分规则 (ReportCategory.ScoreRule)
| 值 |
说明 |
| 1 |
累加计分(选项1-10对应1-10分) |
| 2 |
二值计分(选项1-5得0分,6-10得1分) |
5.7 结论类型 (ReportConclusion.ConclusionType)
5.8 邀请码状态 (InviteCode.Status)
5.9 提现状态 (Withdrawal.Status)
| 值 |
说明 |
| 1 |
申请中 |
| 2 |
提现中 |
| 3 |
已提现 |
| 4 |
已取消 |
5.10 学业阶段 (EducationStage)
| 值 |
说明 |
| 1 |
小学及以下 |
| 2 |
初中 |
| 3 |
高中 |
| 4 |
大专 |
| 5 |
本科 |
| 6 |
研究生及以上 |
六、表汇总
| 序号 |
表名 |
说明 |
模块 |
| 1 |
users |
用户表 |
用户模块 |
| 2 |
user_refresh_tokens |
刷新令牌表 |
用户模块 |
| 3 |
user_login_logs |
登录日志表 |
用户模块 |
| 4 |
banners |
轮播图表 |
内容管理 |
| 5 |
promotions |
宣传图表 |
内容管理 |
| 6 |
assessment_types |
测评类型表 |
测评模块 |
| 7 |
questions |
题目表 |
测评模块 |
| 8 |
report_categories |
报告分类表 |
测评模块 |
| 9 |
question_category_mappings |
题目分类映射表 |
测评模块 |
| 10 |
report_conclusions |
报告结论表 |
测评模块 |
| 11 |
orders |
订单表 |
订单模块 |
| 12 |
order_notifies |
订单通知表 |
订单模块 |
| 13 |
assessment_records |
测评记录表 |
测评记录 |
| 14 |
assessment_answers |
测评答案表 |
测评记录 |
| 15 |
assessment_results |
测评结果表 |
测评记录 |
| 16 |
planners |
规划师表 |
学业规划 |
| 17 |
planner_bookings |
规划预约表 |
学业规划 |
| 18 |
invite_codes |
邀请码表 |
分销模块 |
| 19 |
commissions |
佣金记录表 |
分销模块 |
| 20 |
withdrawals |
提现记录表 |
分销模块 |
| 21 |
configs |
系统配置表 |
系统配置 |
共计 21 张业务表
七、初始化数据
7.1 系统配置初始数据
INSERT INTO configs (ConfigKey, ConfigValue, ConfigType, Description)
VALUES
('assessment_price', '99.00', 'price', N'测评价格'),
('commission_rate_level1', '0.30', 'commission', N'一级分销佣金比例'),
('commission_rate_level2', '0.10', 'commission', N'二级分销佣金比例'),
('commission_rate_direct', '0.40', 'commission', N'无上级时直接佣金比例'),
('withdraw_min_amount', '10.00', 'withdraw', N'最低提现金额'),
('service_phone', '400-000-0000', 'contact', N'客服电话'),
('service_wechat', '', 'contact', N'客服微信'),
('user_agreement_url', '', 'agreement', N'用户协议URL'),
('privacy_policy_url', '', 'agreement', N'隐私政策URL'),
('about_us_content', '', 'content', N'关于我们内容');
7.2 测评类型初始数据
INSERT INTO assessment_types (Name, Code, Price, QuestionCount, Sort, Status)
VALUES (N'多元智能测评', 'MI_ASSESSMENT', 99.00, 80, 1, 1);
八、备注
8.1 性能优化建议
- 对高频查询字段建立索引
- 大文本字段(如报告结论)考虑分表存储
- 历史数据定期归档
8.2 扩展预留
- User 表预留 UnionId 字段,支持多端打通
- Order 表预留 Remark 字段,支持业务扩展
- SystemConfig 表支持动态配置扩展
8.3 安全考虑
- 手机号等敏感信息加密存储
- 支付相关字段记录完整交易信息
- 软删除保留数据可追溯