互联网医院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 (挂号费)。这为下一篇的**"支付下单"**提供了准确的价格来源。
相关推荐
CHU7290351 天前
便捷约玩,沉浸推理:线上剧本杀APP功能版块设计详解
前端·小程序
px不是xp1 天前
微信小程序组件化开发最佳实践
微信小程序·小程序·notepad++
E-cology1 天前
【泛微低代码开发平台e-builder】使用HTML组件实现页面中部分区域自定义开发
前端·低代码·泛微·e-builder
编程迪1 天前
基于SpringBoot开发的预约停车系统共享停车位小程序app
小程序·停车场小程序·预约停车·错峰出行·共享车位app
云起SAAS1 天前
早晚安打卡签到小程序完整源码 | 三级分销+红包广告+PC后台 | 商业级系统
小程序
职豚求职小程序1 天前
浙商银行笔试题库小程序练习2026新版题库
小程序
云捷配低代码1 天前
低代码自动化工作流实战:实现跨部门业务协同的自动化流转
运维·人工智能·低代码·自动化·数字化·敏捷流程·数字化转型
Kingexpand_com1 天前
旅游小程序选型指南:模板与定制开发全解析
小程序·旅游·软件开发·小程序开发·旅游小程序·旅行·定制开发
克里斯蒂亚诺更新1 天前
微信小程序引入vant weapp,button宽度100%
微信小程序·小程序
一品威客网1 天前
租车小程序 APP 版本开发 全端适配高效用车体验一站式搭建
小程序