Skip to content

核心业务表

本节覆盖除 RAG 之外的业务表。字段类型以生产 RDS catalog 为准,读写路径以 backend repository、service 和 use case 为准。

用户与档案

users

用户认证主体和基础身份资料。

FieldTypeNullableDescription
pk_uservarchar(255)no主键。
user_novarchar(255)no用户编号,唯一。
phonevarchar(20)no登录手机号,唯一;正式文档不写真实值。
passwordvarchar(255)yes密码哈希。
user_nicknamevarchar(255)yes昵称。
user_namevarchar(255)yes姓名。
id_novarchar(255)yes证件号字段;文档和日志必须脱敏。
gendervarchar(10)yes性别。
birthdateyes出生日期。
emailaddressavatarvarcharyes联系与头像信息。
statusboolno账户启用状态。
health_info_completedboolno建档信息完成标记。
create_timeupdate_timetimestamptzyes账户创建与更新时间。

Relations and indexes:

TypeDefinition
PKPRIMARY KEY (pk_user)
Uniqueuser_nophone
Childrenuser_profilesuser_diseasesuser_operationsuser_health_profilessport_schemessport_logschat_sessionsdialogue_logsupdate_logsvirtual_companion

Read / Write:

PathReadWrite
Authphonepk_user 查询用户注册、密码注册、健康信息完成状态
User/Profile读取完整档案更新基础信息、头像引用
Companion/Sport/Chat读取用户画像上下文不直接写账户主体

user_profiles

用户健康指标、肿瘤档案概览和评估上下文。

FieldTypeNullableDescription
pk_user_normalvarchar(255)no主键。
pk_uservarchar(255)noFK -> users.pk_user,唯一。
heightweightbloodtypeinteger / varchar(10)yes基础健康指标。
sysdiapulseintegeryes血压与脉搏。
agebmifitness_levelinteger / float8 / varchar(50)yes评估和展示字段。
cancer_typecancer_subtypetreatment_stagevarcharyes肿瘤与治疗阶段概览。
has_bone_metastasisboolyes骨转移标记。
diagnosis_datedateyes诊断日期,按业务日期处理。
assessment_contextjsonyes评估上下文快照。
data_sourcevarchar(20)yes数据来源。
created_atupdated_attimestamptzyes记录创建与更新时间。

Relations and indexes:

TypeDefinition
FKFOREIGN KEY (pk_user) REFERENCES users(pk_user)
UniqueUNIQUE (pk_user)
Indexesuser_profiles_pkeyuser_profiles_pk_user_key

Read / Write:

PathReadWrite
User profile读取健康指标、肿瘤信息、建档完成度UserService.update_health_metrics
Chat/RAG读取年龄、体重、肿瘤类型、治疗阶段等上下文不在 Chat 主链直接写
Assessment读取/写入 assessment context提交完整评估后更新快照入口

user_diseases

用户疾病史,多条记录归属于同一用户。

FieldTypeNullableDescription
pk_user_diseasevarchar(255)no主键。
pk_uservarchar(255)noFK -> users.pk_user
disease_namevarchar(255)no疾病名称。
disease_stagevarchar(50)yes分期或阶段。
ifdelboolyes软删除标记。

Read / Write:

PathReadWrite
User profile完整档案读取、profile completion新增、更新、软删除疾病史
Chat/RAG作为用户上下文的一部分读取不直接写

user_operations

用户手术史,多条记录归属于同一用户。

FieldTypeNullableDescription
pk_user_operationvarchar(255)no主键。
pk_uservarchar(255)noFK -> users.pk_user
oprt_diseasevarchar(255)no手术相关疾病。
oprt_stagevarchar(50)yes手术阶段。
oprt_timedateyes手术日期,按业务日期处理。
ifdelboolyes软删除标记。

Read / Write:

PathReadWrite
User profile完整档案读取、profile completion新增、更新、软删除手术史
Chat/RAG作为用户上下文的一部分读取不直接写

user_health_profiles

安全筛查和完整评估快照表。该表的 id/user_id 已按字符串 UUID 契约对齐,user_id 外键带 ON DELETE CASCADE

FieldTypeNullableDescription
idvarchar(255)no主键。
user_idvarchar(255)noFK -> users.pk_user,级联删除。
safety_check_datajsonbyes安全筛查 canonical payload。
assessment_datajsonbyes完整评估 canonical payload。
risk_levelvarchar(20)no风险等级,默认 GREEN
created_atupdated_attimestamptzyes快照时间。

Indexes:

IndexPurpose
ix_user_health_profiles_user_id按用户读取评估快照。
ix_user_health_created按创建时间排查或取最近记录。

Read / Write:

PathReadWrite
AssessmentGET /api/assessment/last 类链路读取最近评估POST /api/assessment/safety_checkPOST /api/assessment/submit 写入快照
Safety使用风险等级与筛查结果不直接替代医生诊断

Chat

chat_sessions

AI 对话会话分组。

FieldTypeNullableDescription
idvarchar(255)no会话 ID。
user_idvarchar(255)noFK -> users.pk_user
titlevarchar(255)yes会话标题。
created_atupdated_attimestamptzyes创建与更新时间。
is_deletedboolno软删除标记。

Indexes:

IndexPurpose
idx_chat_sessions_user_active_updateduser_id + updated_at,仅覆盖未删除会话。

Read / Write:

PathReadWrite
Chat history/session会话列表、按 ID 验证用户归属新建会话、更新时间与标题、软删除
Chat message无 session 时创建新会话更新 session 更新时间

dialogue_logs

AI 对话记录表,保留旧 dialogue_log 文本字段,同时提供结构化字段和 RAG/safety 元数据。

FieldTypeNullableDescription
pk_dialogue_logvarchar(255)no主键。
pk_uservarchar(255)noFK -> users.pk_user
session_idvarchar(255)yesFK -> chat_sessions.id
dialogue_logtextnocanonical 对话 payload 的兼容承载字段。
message_rolevarchar(20)nouser / assistant 等角色。
message_contenttextyes结构化消息内容。
input_typevarchar(10)no输入类型,默认 text
statusvarchar(20)no消息状态,默认 sent
rag_contextjsonbyesRAG 来源摘要。
confidencenumeric(3,2)yes模型置信度。
risk_levelsafety_flagsrequires_reviewvarchar / text / boolyes安全过滤结果。
message_hashvarchar(64)yes幂等键。
sync_statuslocal_timestampvarchar(20) / timestamptzno / yes客户端同步相关字段。
create_timetimestamptzyes创建时间。

Indexes:

IndexPurpose
idx_dialogue_logs_user_created用户维度按时间读取历史。
idx_dialogue_logs_user_session_created用户 + session 维度读取历史。
idx_dialogue_logs_user_hash_created用户 + 幂等键回查。
ix_dialogue_logs_message_hash幂等键索引。

Read / Write:

PathReadWrite
POST /api/chat/message读取当前 session 最近历史写入用户消息与 AI 响应 payload
GET /api/chat/history按 user/session/time 分页读取不写
POST /api/prescription/generate不直接读有 session 时写入处方卡片消息
Safety通过 risk_levelsafety_flags 支持排查高风险输出可标记 requires_review

dialogue_logs_archive

对话冷数据归档表,不挂用户外键,保留归档批次与原因。

Field GroupDescription
对话快照pk_dialogue_logpk_usersession_iddialogue_logmessage_rolemessage_content
RAG/safetyrag_contextconfidencerisk_levelsafety_flagsrequires_review
归档元数据archived_atarchive_batch_idarchive_reason

Indexes:

IndexPurpose
idx_dialogue_logs_archive_user_created按用户和时间排查归档记录。
idx_dialogue_logs_archive_batch按归档批次追踪。
idx_dialogue_logs_archive_archived_at按归档时间检索。

运动与处方

sport_schemes

运动处方主表,处方主体以 canonical JSON payload 存在 sportscheme 字段。

FieldTypeNullableDescription
pk_sport_schemevarchar(255)no主键。
pk_uservarchar(255)noFK -> users.pk_user
sportschemetextno处方 JSON payload。
scheme_startscheme_enddateyes方案生效日期。
create_timetimestamptzyes创建时间。
check_statuscheckstatusyes审核状态 enum:待审核已审核
check_resultcheckresultyes审核结果 enum:通过不通过
is_demoboolyesDemo 处方标记。

Indexes:

IndexPurpose
idx_sport_schemes_user_created用户处方列表,按创建时间倒序。
idx_sport_schemes_user_end_created当前活跃方案查询。

Read / Write:

PathReadWrite
POST /api/prescription/generate读取用户档案/RAG 后生成写入新处方
Sport schemes/history按用户读取方案列表与活跃方案更新或停用方案
Chat card读取 scheme_id 供前端跳转不直接修改处方

sport_logs

运动执行记录,支持进行中运动、反馈提交、日历和历史查询。

FieldTypeNullableDescription
pk_sport_logvarchar(255)no主键。
pk_uservarchar(255)noFK -> users.pk_user
sport_namevarchar(255)no运动名称。
estimate_timetimestamptzyes预计时间。
sport_starttimestamptzno运动开始时间。
sport_endtimestamptzyes运动结束时间。
calintegerno热量。
iffinishboolno完成标记。
sport_feedbackvarchar(500)yes用户反馈,当前可承载 JSON 字符串。
ifdelboolno软删除标记。
create_timetimestamptzno创建时间。

Indexes:

IndexPurpose
idx_sport_logs_user_created_active用户运动记录列表。
idx_sport_logs_user_start_active日历与时间区间查询。
idx_sport_logs_user_unfinished_active当前进行中运动查询。

Read / Write:

PathReadWrite
POST /api/sport/log检查是否存在进行中运动创建运动记录
PUT /api/sport/log/{log_id}按 ID 读取更新结束时间、热量、完成状态、反馈
GET /api/sport/logs/calendar按用户与日期范围读取不写
GET /api/sport/history按用户、日期、运动类型过滤不写

安全、陪伴、认证与审计

safety_incidents

安全事件记录。

FieldTypeNullableDescription
pk_safety_incidentvarchar(255)no主键。
pk_uservarchar(255)noFK -> users.pk_user
pk_dialogue_logvarchar(255)yesFK -> dialogue_logs.pk_dialogue_log
incident_typeseverityvarcharno事件类型与严重级别。
descriptionaction_takentextyes描述与处理动作。
resolvedboolyes是否解决。
create_timeresolve_timetimestamptzyes创建与解决时间。

virtual_companion

虚拟陪练配置,每个用户最多一条。

FieldTypeNullableDescription
pk_virtual_companionvarchar(255)no主键。
pk_uservarchar(255)noFK -> users.pk_user,唯一,级联删除。
genderage_groupcurrent_emotionvarchar(10)no形象基础配置与状态。
health_scoreintegeryes健康分。
position_configappearance_configjsonyes前端位置与外观配置。
last_status_updatecreated_atupdated_attimestamptzyes状态更新时间。

Indexes:

IndexPurpose
virtual_companion_pk_user_key保证每个用户唯一配置。
idx_virtual_companion_user_id按用户读取配置。
idx_virtual_companion_state按形象状态组合检索。

sms_verifications

短信验证码记录。

FieldTypeNullableDescription
pk_sms_verificationvarchar(255)no主键。
phonevarchar(20)no手机号;正式文档不写真实值。
codevarchar(6)no验证码;日志与文档不得写真实值。
codetypevarchar(50)no验证码用途。
expired_timetimestamptzno过期时间。
ifuseboolno是否已使用。
create_timetimestamptzyes创建时间。

login_logs

登录审计记录。

FieldTypeNullableDescription
pk_login_logvarchar(255)no主键。
pk_uservarchar(255)no用户 ID;生产库未声明外键。
login_timetimestamptzyes登录时间。
login_iplogin_deviceapp_versionvarcharyes登录来源信息,文档不写真实样例。
login_methodvarchar(50)no登录方式。
ifsuccessboolno是否成功。
fail_reasonvarchar(255)yes失败原因。

update_logs

用户资料变更审计。

FieldTypeNullableDescription
pk_update_logvarchar(255)no主键。
pk_uservarchar(255)noFK -> users.pk_user
update_namevarchar(255)yes变更字段名。
valvarchar(255)yes变更值摘要;不得写真实敏感样例。
create_timetimestamptzyes创建时间。

Index: idx_update_logs_user_created,服务于用户维度按时间倒序查询。

system_configs

系统配置和 feature flag。

FieldTypeNullableDescription
idvarchar(255)no主键。
config_keyvarchar(100)no配置键,唯一。
config_valuejsonbno配置值。
config_typevarchar(50)no配置类型。
descriptiontextyes描述。
is_activeboolno是否启用。
created_atupdated_attimestamptzno创建与更新时间。

data_migration_log

数据迁移日志。

FieldTypeNullableDescription
idvarchar(255)no主键。
migration_typevarchar(50)no迁移类型。
source_descriptiontextno来源描述。
target_tablevarchar(100)no目标表。
records_migratedintegerno迁移记录数。
migration_statusvarchar(20)no状态。
error_messagetextyes错误摘要。
started_atcompleted_attimestamptzno / yes起止时间。
migration_metadatajsonbyes迁移元数据。

来源锚点

  • ORM: apps/backend_service/app/models/
  • Production catalog: RDS core_base information_schema.columnspg_constraintpg_indexes
  • Repositories: apps/backend_service/app/repositories/user_repository.pydialogue_repository.pysport_log_repository.pysport_scheme_repository.py
  • Services / use cases: apps/backend_service/app/services/user_service.pysport_service.pyprescription_service.pyapps/backend_service/app/use_cases/
  • Migrations: apps/backend_service/alembic/versions/2b6d9f3a4c1e_align_production_schema_contracts.py4f16c8d2a9b1_add_operational_indexes_for_sport_and_audit.py6e18b4a7c2d3_normalize_operational_timestamps_to_timestamptz.py7d18e9f1a2b4_convert_business_dates_to_date.py