当前位置: 首页 > news >正文

ASP.NET Core Web APP(MVC)医疗记录管理系统 - 数据库完整指南 - 详解

ASP.NET Core Web APP(MVC)医疗记录管理系统 - 数据库完整指南

1. 数据库关系图(ER图)

该数据库是一套医疗场景下的用户与诊疗信息管理系统,核心围绕“用户-医生-患者-诊疗记录”构建资料关联,实现对医疗服务全流程的数字化记录。

1.1 核心数据表及意义

(1)AspNetUsers(用户基础表)

- 核心作用:存储系统所有用户的通用账号信息,是整个数据库的“用户身份基石”,支持身份验证与登录。
- 关键字段:
-  Id (PK) :用户唯一标识(主键),关联医生表,区分不同用户。
-  UserName / Email :用户登录名与邮箱,用于账号识别和沟通。
-  PasswordHash :加密后的密码,保障账号安全(不存储明文)。

(2)Doctors(医生信息表)

- 核心作用:存储医生的专业信息,关联用户身份与所属科室,是“医生”角色的专属信息补充。
- 关键字段:
-  DoctorId (PK) :医生唯一标识(主键),用于关联患者和诊疗记录。
-  UserId (FK) :关联AspNetUsers的Id,将医生与系统账号绑定(1个用户账号对应1个医生,1个医生仅对应1个账号)。
-  DepartmentId (FK) :关联Departments的DepartmentId,标明医生所属科室。
-  FirstName / LastName / Specialization / LicenseNumber :医生姓名、专业领域(如内科、外科)、执业许可证号,体现医生专业属性。

(3)Departments(科室信息表)

- 核心作用:存储医院科室的基础信息,是“医生所属组织”的分类管理表。
- 关键字段:
-  DepartmentId (PK) :科室唯一标识(主键),用于关联医生表。
-  Name / Description :科室名称(如“心血管内科”)、科室职能描述(如“负责冠心病、高血压等疾病诊疗”),明确科室定位。

(4)Patients(患者信息表)

- 核心作用:存储患者的个人基础与健康档案信息,是“诊疗服务对象”的核心数据载体。
- 关键字段:
-  PatientId (PK) :患者唯一标识(主键),用于关联医生和诊疗记录。
-  FirstName / LastName / DateOfBirth / Gender / BloodType :患者姓名、出生日期、性别、血型,是基础身份与健康特征资料。
-  Phone / Email / Address :患者联系方式与住址,用于诊疗沟通和随访。

(5)DoctorPatients(医生-患者关联表)

- 核心作用:解决“医生与患者多对多关系”的中间表(1个医生可接诊多个患者,1个患者可挂多个医生的号)。
- 关键字段:
-  DoctorId (PK,FK) :关联Doctors的DoctorId(联合主键之一)。
-  PatientId (PK,FK) :关联Patients的PatientId(联合主键之一),利用双主键确保“医生-患者”组合唯一,避免重复关联。

(6)MedicalRecords(诊疗记录表)

- 核心作用:存储患者的具体诊疗信息,是“医生为患者提供服务”的结果记录,也是整个框架的核心业务表。
- 关键字段:
-  RecordId (PK) :诊疗记录唯一标识(主键),用于追溯单次诊疗。
-  PatientId (FK) :关联Patients的PatientId,标明记录归属的患者。
-  DoctorId (FK) :关联Doctors的DoctorId,标明开具记录的医生。
-  RecordDate / Diagnosis / Treatment / Notes / FollowUpDate :诊疗日期、诊断结果(如“急性肠胃炎”)、治疗方案(如“口服抗生素+饮食调理”)、医生备注、随访日期,完整记录单次诊疗的核心信息。

1.2 表之间的核心关系(基于ER图)

所有关系均基于“外键(FK)关联主键(PK)”构建,具体如下:

1. AspNetUsers ↔ Doctors(1:N,实际为1:1)
- 关系:1个用户账号(AspNetUsers)仅对应1个医生(Doctors),1个医生仅绑定1个用户账号(因医生需通过账号登录系统,二者是“身份-角色”的唯一绑定)。
- 关联字段:Doctors.UserId → AspNetUsers.Id。
2. Departments ↔ Doctors(1:N)
- 关系:1个科室(Departments)可包含多个医生(Doctors),1个医生仅属于1个科室。
- 关联字段:Doctors.DepartmentId → Departments.DepartmentId。
3. Doctors ↔ Patients(N:N,通过DoctorPatients完成)
- 关系:1个医生可接诊多个患者,1个患者可选择多个医生就诊(如复诊换医生、多科室就诊),无法直接用单表外键关联,需中间表过渡。
- 关联方式:Doctors.DoctorId → DoctorPatients.DoctorId;Patients.PatientId → DoctorPatients.PatientId。
4. Patients ↔ MedicalRecords(1:N)
- 关系:1个患者(Patients)可有多条诊疗记录(MedicalRecords,如多次复诊),1条诊疗记录仅归属1个患者。
- 关联字段:MedicalRecords.PatientId → Patients.PatientId。
5. Doctors ↔ MedicalRecords(1:N)
- 关系:1个医生(Doctors)可开具多条诊疗记录(为不同患者或同一患者多次诊疗),1条诊疗记录仅由1个医生开具。
- 关联字段:MedicalRecords.DoctorId → Doctors.DoctorId。

┌─────────────────┐
│   AspNetUsers   │
│─────────────────│
│ Id (PK)         │
│ UserName        │
│ Email           │
│ PasswordHash    │
└────────┬────────┘││ 1:N│
┌────────▼────────┐         ┌──────────────────┐
│    Doctors      │         │   Departments    │
│─────────────────│         │──────────────────│
│ DoctorId (PK)   │    N:1  │ DepartmentId(PK) │
│ UserId (FK)     ├─────────┤ Name             │
│ DepartmentId(FK)│         │ Description      │
│ FirstName       │         └──────────────────┘
│ LastName        │
│ Specialization  │
│ LicenseNumber   │
└────────┬────────┘││ 1:N│
┌────────▼────────────┐
│ DoctorPatients      │ (多对多关联表)
│─────────────────────│
│ DoctorId (PK,FK)    │
│ PatientId (PK,FK)   │
└─────────────────────┘││ N:1│
┌────────▼────────┐
│    Patients     │
│─────────────────│
│ PatientId (PK)  │
│ FirstName       │
│ LastName        │
│ DateOfBirth     │
│ Gender          │
│ BloodType       │
│ Phone           │
│ Email
http://www.jsqmd.com/news/294557/

相关文章:

  • 实用指南:技术选型指南:低代码+AI如何重塑中小企业进销存系统架构
  • 2026第一次周报
  • 堆专题
  • 2026年虹口优秀的母猫绝育医院哪家靠谱,母猫绝育/猫咪体检/宠物外科/母狗绝育/宠物体检/猫咪绝育,猫咪绝育医院哪家好
  • JS函数练习题
  • 方波发生器,摆脱了 LC/RC 选频网络?
  • 2026想找优质蒸汽锅炉制造厂家?评测带你一探究竟,锅炉厂家/导热油锅炉/蒸汽锅炉,蒸汽锅炉公司找哪家
  • 2026艺术漆市场风向标:诺兰迪直销厂家值得一试,外墙艺术漆/艺术肌理漆/墙面艺术漆/诺兰迪艺术漆,艺术漆供应商选哪家
  • 冲刺Day4
  • Web学习之网络通信
  • 一文掌握 Spring AI:集成主流大模型的完整方案与思考
  • 入门篇--人工智能发展史-10-从MCP协议到AI Agent:从静态知识到动态智能,智能体的全面演进之路
  • 2026主流GEO服务商全景图谱,GEO机制深度解析与服务商选型权威指南
  • 2026年山东短视频制作服务商权威推荐榜单:短视频策划 /短视频运营 /短视频引流/ 短视频文案 /短视频脚本源头服务商精选
  • Linux(ubuntu)如何锁定cpu频率工作在最低能耗模式下
  • linux下如何通过与AI对话设置thinkpad电池充电阈值
  • 如何更环保(更省钱)的使用各类电子耗材/消耗品/易损件~电池为例
  • 深入解析:STM32——按钮实验
  • 论文答辩时,评审组导师一旦开始问问题,通常会问哪些问题?
  • 多线程核心知识
  • 2025年有实力的户外led大屏广告公司承包商找哪家,公交广告/地铁广告/广播电台广告,户外led大屏广告公司排行
  • 一个月内面了30家公司,薪资从18K变成28K,真行啊····
  • 面了十几家公司测试岗,我终于悟了,面试无非就是这些题
  • 2026年深圳企业邮箱注册公司推荐:深圳市聚诚在线科技有限公司,企业邮箱/企业域名/网易企业邮箱/企业邮箱管理公司精选
  • 嵌入式 C++ 高性能流式架构的设计
  • 河南鑫味源之源:匠心调味,香飘万家 docx
  • 主流GEO服务商能力全景图谱,垂直行业GEO解决方案商
  • 2026高中辅导大揭秘:靠谱机构全解析
  • 河南鑫味源之源调味品:豫南味魂,调出百味鲜香
  • 2026年湖北短视频拍摄制作服务商权威推荐榜:短视频运营 /短视频拍摄 /短视频拍摄运营 /短视频运营方案 /短视频拍摄合作 /短视频运营技巧服务商精选