互联网医院17:架构重构——医生档案的“独立宣言”

目录

  • [1. 前言:从"大杂烩"到"精细化"](#1. 前言:从“大杂烩”到“精细化”)
  • [2. 数据库设计:医生信息表](#2. 数据库设计:医生信息表)
  • [3. 功能搭建](#3. 功能搭建)
    • [3.1 搭建表格视图](#3.1 搭建表格视图)
    • [3.2 切换视图](#3.2 切换视图)
    • [3.3 搭建列表视图](#3.3 搭建列表视图)
  • [4. 总结](#4. 总结)

1. 前言:从"大杂烩"到"精细化"

在项目初期,为了快速跑通流程,我们将医生、护士、管理员都统一放在了 t_personnel(人员表)中,通过 role 字段来区分。

但随着业务深入,我们发现这种"一表通吃"的设计越来越捉襟见肘:

  • 字段冗余:医生有"职称"、"擅长领域"、"挂号费",但管理员不需要这些,导致表里出现大量空字段。
  • 关联混乱 :之前的 t_schedule(排班)关联的是人员表,但实际上排班应该只针对医生。
  • 扩展性差:未来如果医生要加"多点执业"、"评价分数"、"科研成果",人员表会变得臃肿不堪。

本篇目标

我们将进行一次架构重构 ,将医生信息从人员表中剥离,建立独立的 医生信息表 (t_doctor)

  • t_personnel:负责存基础信息(姓名、手机号、工号、登录凭证)。
  • t_doctor:负责存医疗属性(职称、介绍、挂号费),并通过 ID 关联回人员表。

2. 数据库设计:医生信息表

这张表是医生作为"医疗资源"的核心档案。

表名t_doctor

字段名称 标识 (Key) 数据类型 必填 说明
关联人员 personnel_id 关联关系 核心外键,关联 t_personnel (1对1),用于绑定登录账号
所属科室 dept_id 关联关系 核心外键,关联 t_department,决定排班归属
医生姓名 name 文本 (String) 冗余字段,与人员表保持一致,减少连表查询次数
医生工号 doctor_no 文本 (String) 医院内部唯一工号,如:DOC2025001
临床职称 job_title 枚举 (Enum) 选项:主任医师 / 副主任医师 / 主治医师 / 住院医师
学术职称 academic_title 枚举 (Enum) 选项:教授 / 副教授 / 讲师 / 博士生导师
擅长疾病 good_at 文本 (String) 简短概括,用于列表展示,如:高血压、冠心病介入治疗
个人简介 introduction 富文本 (RichText) 详细履历、执业经历,支持HTML格式
职业格言 motto 文本 (String) 显示在头像下方的短句,增强亲和力
形象照 avatar_url 图片 (Image) 医生专业白大褂半身照 (区别于生活头像)
主页背景图 bg_image 图片 (Image) 医生个人主页顶部的Banner背景图
视频介绍 video_intro 文件 (File) 医生的自我介绍短视频地址
标准挂号费 reg_fee 数字 (Number) 单位:元,作为排班的默认价格基准
服务患者数 service_count 数字 (Number) 累计接诊人数,如:1205 (用于展示热度)
综合评分 score 数字 (Number) 满分5.0,如:4.9 (用于展示口碑)
平均等待 avg_wait_time 数字 (Number) 单位:分钟,如:15 (用于患者预期管理)
排序权重 priority 数字 (Number) 默认为0,数字越大在列表中越靠前
状态 status 枚举 (Enum) 1:出诊 (正常), 0:停诊 (隐藏), 2:暂离

3. 功能搭建

除了单调的表格视图,我们还希望有一种卡片视图来呈现数据,先搭建表格视图

3.1 搭建表格视图

以前我们都是使用的数据表格的自带模板,但是考虑到医生的信息是非常多的,弹窗操作不方便,我们这次用模板来生成。

点击创建页面的图标

选择表格与表单页,数据模型选择医生信息表,布局选择左侧导航布局

自动生成了列表、编辑和查看页面

我看有的博主总结,这一步他也叫低代码,他是生成代码减少重复写代码的数量。我认为这种不能算是低代码的范畴,你本质还是为了生成代码模板。低代码是一行都不写,全程可视化配置,只是发布那一刻才进行转写。

配置查询条件

切换到布局设计,在业务管理下添加子菜单,选择列表页面

修改页面的标题和图标

3.2 切换视图

切换视图我们用两个图标来控制,点击一个图标的时候一种视图呈现,点击另外一个图片切换到其他视图。

需要先创建一个变量来决定哪个视图呈现

然后在标题的旁边添加两个图标组件

这里用图标的样式绑定来控制一个选中的效果

bash 复制代码
$page.dataset.state.viewType === 'table' ? {color:'#1890ff'} :{color:'#000000'} 

然后给图标设置点击事件,点击的时候给变量进行赋值

在布局内容里添加一个普通容器,把数据表格移入

然后给普通容器绑定条件展示,当我们的变量等于table时显示

bash 复制代码
$w.page.dataset.state.viewType=="table"

按照同样的方法,继续添加一个普通容器,里边添加一个数据列表组件

这个我们绑定普通容器的条件展示,当变量等于card时候展示

bash 复制代码
$w.page.dataset.state.viewType=="card"

3.3 搭建列表视图

列表视图我们主要是需要把纵向排列的数据改为横向排列

修改数据列表的模板为卡片列表

调节列的数量改为4就可以


4. 总结

通过这次重构,我们将"人"与"角色"解耦了:

  1. 专业度提升t_doctor 表专门承载医疗属性,支持更复杂的业务(如未来增加"挂号费配置"、"排班规则"等)。
  2. 为支付铺路 :我们在 t_doctor 里定义了 reg_fee (挂号费)。这为下一篇的**"支付下单"**提供了准确的价格来源。
相关推荐
2601_962344621 天前
计算机毕业设计之基于大数据的投保数据的分析系统的设计与实现
大数据·人工智能·深度学习·机器学习·信息可视化·小程序·课程设计
黑黑的独立开发笔记1 天前
「 简记往来」第十五篇:小程序性能优化——首屏从2.5秒到1.2秒
性能优化·小程序·首屏优化·分包加载·setdata·简记往来
卷叶小树2 天前
Style Resolver:Schema 驱动低代码平台的样式能力设计
低代码
SL_staff11 天前
3周搭完MES系统:JVS低代码+JVS-IoT物联网的实战记录
java·前端·低代码
AprChell13 天前
低代码设计器和低代码设计引擎架构综述
前端·vue.js·低代码
Kagol17 天前
NocoBase 开源项目源码深度分析
低代码
m0_5261194018 天前
iconfont我修改好颜色,但是在小程序项目是黑色的
小程序
2601_9567436818 天前
2026 上海小程序开发甄选:源码、云函数、跨端兼容技术评判
小程序·开发经验·上海
IT_张三18 天前
CSDN-项目分享-暑期备考小程序
小程序
IsJunJianXin19 天前
pdd小程序 cdp 保存响应体
linux·服务器·小程序·pdd小程序·拼多多响应体解密·小程序cdp·拼多多rpc取响应体