本文档详细描述了银龄平台项目中所有实体之间的关联关系,包括实体间的依赖关系、使用场景和架构设计原则。
项目共包含 23个实体类,分布在以下业务模块:
erDiagram
UserEntity ||--o{ SilverUserProfile : "1对1"
UserEntity ||--o{ UserPreference : "1对1"
UserEntity ||--o{ SilverTimeBank : "1对多"
UserEntity ||--o{ SilverKnowledge : "1对多"
UserEntity ||--o{ SilverKnowledgeInteraction : "1对多"
UserEntity ||--o{ Application : "1对多"
UserEntity ||--o{ Favorite : "1对多"
UserEntity ||--o{ ViewRecord : "1对多"
Company ||--o{ Job : "1对多"
Company ||--o{ CompanyImage : "1对多"
Job ||--o{ Application : "1对多"
Job ||--o{ Favorite : "1对多"
Job ||--o{ ViewRecord : "1对多"
SilverKnowledge ||--o{ SilverKnowledgeTagRelation : "1对多"
SilverKnowledge ||--o{ SilverKnowledgeInteraction : "1对多"
SilverKnowledge ||--o{ SilverKnowledgeStats : "1对1"
SilverKnowledge }o--|| SilverKnowledgeCategory : "多对1"
SilverKnowledgeTag ||--o{ SilverKnowledgeTagRelation : "1对多"
SilverUserProfile.userId → UserEntity.idUserPreference.userId → UserEntity.idSilverTimeBank.userId → UserEntity.idSilverKnowledge.userId → UserEntity.idSilverKnowledge.categoryId → SilverKnowledgeCategory.idJob.companyId → Company.idCompanyImage.companyId → Company.id所有实体包含以下追踪字段:
created_by: 创建人ID → UserEntity.idupdated_by: 更新人ID → UserEntity.iduser_id: 所属用户ID → UserEntity.id所有实体包含:
created_at: 创建时间updated_at: 更新时间| 实体 | 描述 | 关联实体 |
|---|---|---|
| UserEntity | 基础用户账号 | SilverUserProfile, UserPreference, 所有业务实体 |
| Role | 用户角色 | UserEntity (多对多) |
| 实体 | 描述 | 主要关联 |
|---|---|---|
| SilverUserProfile | 银龄用户档案 | UserEntity |
| SilverPoint | 用户积分账户 | UserEntity |
| SilverPointTransaction | 积分交易记录 | UserEntity |
| SilverTimeBank | 时间银行记录 | UserEntity |
| TimeBankIntro | 时间银行介绍 | - |
| TimeBankCase | 时间银行案例 | - |
| TimeBankStats | 时间银行统计 | - |
| SilverKnowledge | 知识分享内容 | UserEntity, SilverKnowledgeCategory |
| SilverKnowledgeCategory | 知识分类 | SilverKnowledge |
| SilverKnowledgeTag | 知识标签 | SilverKnowledgeTagRelation |
| SilverKnowledgeTagRelation | 知识-标签关联 | SilverKnowledge, SilverKnowledgeTag |
| SilverKnowledgeStats | 知识统计 | SilverKnowledge |
| SilverKnowledgeInteraction | 知识交互记录 | UserEntity, SilverKnowledge |
| ElderlyUniversity | 老年大学信息 | - |
| PolicyNews | 政策新闻 | - |
| UserPreference | 用户偏好设置 | UserEntity |
| 实体 | 描述 | 主要关联 |
|---|---|---|
| Company | 招聘企业 | Job, CompanyImage |
| Job | 招聘岗位 | Company, Application, Favorite, ViewRecord |
| Application | 求职申请 | UserEntity, Job |
| Favorite | 收藏记录 | UserEntity, Job |
| ViewRecord | 浏览记录 | UserEntity, Job |
| CompanyImage | 企业图片 | Company |
| 实体 | 描述 | 主要关联 |
|---|---|---|
| File | 文件管理 | - |
user_id关联到基础UserEntity-- 用户发布一篇健康知识
INSERT INTO silver_knowledges (user_id, title, content, category_id, created_by)
VALUES (123, '老年人健康饮食指南', '详细内容...', 5, 123);
-- 添加标签关联
INSERT INTO silver_knowledge_tag_relations (knowledge_id, tag_id)
VALUES (新知识的ID, 1), (新知识的ID, 3);
-- 更新用户档案统计
UPDATE silver_user_profiles
SET knowledge_share_count = knowledge_share_count + 1
WHERE user_id = 123;
-- 用户申请岗位
INSERT INTO job_applications (job_id, user_id, status, created_by)
VALUES (456, 123, 0, 123);
-- 更新岗位申请数
UPDATE silver_jobs
SET application_count = application_count + 1
WHERE id = 456;
-- 记录志愿服务
INSERT INTO silver_time_banks (
user_id, work_type, organization, work_hours,
earned_points, created_by
) VALUES (123, 1, '幸福社区', 3.5, 35, 123);
-- 更新用户积分
UPDATE silver_user_profiles
SET time_bank_hours = time_bank_hours + 3.5
WHERE user_id = 123;
索引优化
分表策略
缓存策略
查询优化
本项目采用了清晰的分层架构设计,各业务模块相对独立,通过标准化的关联关系实现了完整的银龄服务平台。实体设计遵循了用户中心、业务聚合、统计分离等现代架构原则,为后续的功能扩展和性能优化奠定了良好基础。