70 lines
2.6 KiB
Markdown
70 lines
2.6 KiB
Markdown
|
|
# 数据库(wx_xcx_check)规范
|
|||
|
|
|
|||
|
|
## Purpose
|
|||
|
|
本能力描述 MariaDB/MySQL schema `wx_xcx_check` 的表结构与核心业务语义,用于约束后端 API 的持久化行为。
|
|||
|
|
|
|||
|
|
参考文件:
|
|||
|
|
- 根目录 `wx_xcx_check.sql`
|
|||
|
|
- `WxCheckMvc/wx_xcx_check.sql`
|
|||
|
|
|
|||
|
|
## Requirements
|
|||
|
|
|
|||
|
|
### Requirement: 用户表 xcx_users
|
|||
|
|
系统 SHALL 存储小程序用户档案,主业务键为 `UserKey`(微信 `openid`)。
|
|||
|
|
|
|||
|
|
字段语义(核心):
|
|||
|
|
- `UserKey`:唯一键(UNIQUE)
|
|||
|
|
- `UserName`:用户姓名(可空,注册/完善资料后写入)
|
|||
|
|
- `WeChatName`:微信昵称(可空)
|
|||
|
|
- `PhoneNumber`:手机号(可空,注册/完善资料后写入)
|
|||
|
|
- `AvatarUrl`:头像 URL(可空,上传后写入)
|
|||
|
|
- `Department`:部门(可空,用于管理端筛选)
|
|||
|
|
- `IsDisabled`:0 启用 / 1 禁用
|
|||
|
|
- `FirstLoginTime`:首次登录时间
|
|||
|
|
- `CreateTime`/`UpdateTime`
|
|||
|
|
|
|||
|
|
#### Scenario: 首次登录建档
|
|||
|
|
- **WHEN** 后端检测到 `UserKey` 不存在
|
|||
|
|
- **THEN** 插入一条用户记录,至少包含 `UserKey/FirstLoginTime/IsDisabled`
|
|||
|
|
|
|||
|
|
### Requirement: 会话表 xcx_conversation
|
|||
|
|
系统 SHALL 存储会话记录,并支持软删除。
|
|||
|
|
|
|||
|
|
字段语义(核心):
|
|||
|
|
- `UserKey`:关联用户(逻辑关联;当前 schema 未声明外键)
|
|||
|
|
- `ConversationContent`:会话内容
|
|||
|
|
- `SendMethod`:发送方式(文本/语音等,由业务侧约定字符串)
|
|||
|
|
- `MessageType`:1 公有 / 2 私有
|
|||
|
|
- `Guid`:会话唯一标识(业务约定;schema 未声明 UNIQUE)
|
|||
|
|
- `Latitude/Longitude`:经纬度(字符串存储)
|
|||
|
|
- `UserLocation`:地址文本(可由高德逆地理编码写入)
|
|||
|
|
- `RecordTime`:记录时间
|
|||
|
|
- `RecordTimeUTCStamp`:毫秒级 UTC 时间戳(用于排序/分页)
|
|||
|
|
- `SpeakingTime`:对话时长(可空)
|
|||
|
|
- `IsDeleted`:0 正常 / 1 删除
|
|||
|
|
|
|||
|
|
索引:
|
|||
|
|
- `idx_userkey`、`idx_utcstamp`、`idx_deleted`、`idx_messagetype`、`idx_guid`
|
|||
|
|
|
|||
|
|
#### Scenario: 软删除
|
|||
|
|
- **WHEN** 用户删除会话
|
|||
|
|
- **THEN** 将 `IsDeleted` 置为 1
|
|||
|
|
- **AND** 默认查询不返回 `IsDeleted = 1` 的记录
|
|||
|
|
|
|||
|
|
### Requirement: 操作日志表 xcx_log
|
|||
|
|
系统 MAY 记录操作日志,用于审计与问题排查。
|
|||
|
|
|
|||
|
|
字段语义(核心):
|
|||
|
|
- `UserKey`:操作者
|
|||
|
|
- `OperationContent`:操作内容
|
|||
|
|
- `Impact`:影响描述
|
|||
|
|
- `RecordTime`:记录时间
|
|||
|
|
|
|||
|
|
#### Scenario: 记录操作日志
|
|||
|
|
- **WHEN** 发生需要审计的关键操作
|
|||
|
|
- **THEN** 系统写入 `xcx_log`
|
|||
|
|
|
|||
|
|
## Known Limitations
|
|||
|
|
- `xcx_conversation.UserKey` 与 `xcx_users.UserKey` 当前为“逻辑关联”,未声明外键;数据一致性需由应用层保障。
|
|||
|
|
- `Guid` 未声明唯一约束;若业务要求全局唯一,应在后续变更中补齐约束与迁移。
|