医生智能提醒小程序数据库设计心得——Legends Never Die

根据我们小组数据库设计的整个流程,我们将整个数据库设计划分为两个具体的阶段,在每个阶段需要进行不同的准备,有不同的注意事项,接下来我们将结合在数据库设计过程中遇到的一些问题和困难,提出自己的一些观点,希望能对大家有所启发。如有异议,欢迎指正。
一、准备阶段:
在数据库设计前,需要准备以下几样东西:
1:设计工具
数据库设计过程中会用到一些软件,例如powerdesigner(实际上不仅仅是用于数据库设计)。想要设计好数据库,熟练运用软件是必不可少的。至于如何学习使用其进行数据库设计,主要的方法还是利用其自带的文档/网上找资料。
在使用该软件之前,最好先从E-R图开始入手,同时数据库的基本知识也要有,这些都是数据库设计的基础。
2:用例图
用例图能够帮助我们理清各类用户,以及他们所需要功能。有这些数据,我们可以划分不同的功能模块,然后再对每个功能模块设计其对应数据库。这样做就不会出现不知道从哪张表开始设计的情况。不同功能模块相对独立,这样做就可以将设计任务分成若干部分。至于不同的用户则是这些功能模块的所有者,并起到桥梁的作用。
以我们的项目为例:用户只有两类,医生和患者,医生功能有查看并处理预约,自我提醒,积分,提醒患者,上传资料等,患者功能主要有预约并且及时查看提醒并回复。
实际设计步骤中也是按照模块一个一个设计的。

              图1 项目总的用例

3:需求文档
需求文档中主要提供了对各种功能以及相关数据的详细描述。相关数据的主要来源是我们设计的表中的属性。除此之外,需求文档还可以揭示一部分的关系,例如实体和实体之间的联系(一对一,一对多,多对多等)。

            图2 预约用例说明

图2 展示的只是预约功能中一部分,我们可以从中知道患者预约时需要选择(业务和时间),其中业务显然是医生方提供的。除此之外,不允许患者重复预约(对预约的约束)。
详细的需求说明在设计数据库的过程中是十分重要的,需要弄清楚整体需求之后才能开始设计。当然,需求说明并不是万能的,有些说明中提供的数据可能不完善,或者是描述不清。此时可以选择和相关人员交流,或者通过参考已有案例来填充这部分。

二、设计
概念数据模型(CDM)是我们的本次设计的重点。具体的任务有以下几个
1:实体的建立
建立一个实体并不容易,既要考虑实体所具有的属性,以及属性的数据类型,属性的默认值,一些简单的约束,是否为空,还要考虑主键,候选key(标识符)。
其中一个比较常规的做法是为每一张表添加一个标号属性(并不一定有用),并作为主键,以此作为唯一识别的标识符,同时也作为多表关系中的外键。
当然,这么做比联合主键这类利用其他属性作为主键的做法要简单,但是在数据的约束上可能会有更高要求。因为原来作为主键可以让其不重复,但是不作为主键可以必须使用unique约束来完成这一点。
下图3中就是使用编号作为主键,但是编号本身没有意义,因此实际过程中可能需要患者姓名+电话号码或者单纯的电话号码作为标识符。

           图3 患者基本信息实体

2:关系的确定
关系是实体和实体之间的桥梁,无论是一对一,一对多,还是多对多关系,都是如此。值得注意的是,一对一其实是指在A表中的一条对应B表中的一条记录。关系之间还有强相关,弱相关,弱相关(只对与一方来说,可能另外一方是强相关)是指A表中的一条记录不一定在B表中有对应记录。具体可以在关系的描述中看到。
至于带属性的关系其实可以转换成实体,这里就不再阐述了。
图4中只是一种实现方式,在当前业务,账户和用户是一对一的关系,即一个用户只有一个账号,一个账号对应一个用户。(至于那种相同的注册两个账号,看作是两个不同的人)

         图4 账号和患者基本信息

3:PDM
PDM主要由CDM转换而成。值得注意的是,PDM是最终参考的依据,外键能够显示在PDM中,因此具有很强的参考价值。但是要注意由CDM直接生成的PDM有时候并不完全满足我们的要求,因此,在生成PDM之后,必须要进行检查。
4:视图和索引
我们认为视图和索引的创建是与具体的应用相结合的,因此这两个部分我们还在设计之中,并没有具体的实现。

三、总结:
数据库设计有一定难度,我们组是一边探索一边设计的,并且在过程中积极讨论,询问老师获取意见,修改了很多次才有现在的这个版本,因为需求不是一成不变的。在此后的开发过程中,我们还会根据需求的变动与实际情况对数据库进行调整,使其更加符合项目的功能需求与生活应用,并且要积极在组内,小组之间,以及和老师,就设计中出现的问题展开讨论,寻求解决方案。同时希望小组成员能在这次数据库设计中掌握基本的设计原理与概要。
我们在数据库设计上花费了很多时间和精力,在后续开发过程中我们会充分利用我们设计出来的数据库。
祝各位开发顺利!

原文地址:https://www.cnblogs.com/Hnufsh/p/11822293.html

时间: 2024-10-14 17:30:26

医生智能提醒小程序数据库设计心得——Legends Never Die的相关文章

医生智能提醒小程序需求分析心得

医生智能提醒小程序需求分析心得 人在高铁,刚开电脑 在得知要写需求分析心得之后,我的内心是十分喜悦的.从第五周在激烈的竞争中打败了"今天做地板,明天当老板队"后(他们组没有联系老师?)而获得了"医生智能提醒APP"的开发资格后,我们就开始了需求的分析. "此APP可协助医生记录或导入病人的就诊信息,根据医生目前的就诊预约时间安排,智能化推荐后续就诊时间,方便医生安排病人的后续就诊时间,并可在病人就诊前指定时间间隔进行提醒,同时可以通过自动发送短信给病人的方

噪声收集系统——数据库设计心得

数据库设计心得 在需求分析阶段,其实数据库的设计就已经初具雏形,组内初步分析了需要哪些表来存放哪类数据,并探讨了各个表中的关键字段.但在需求分析阶段的数据库设计并不完整,只描述了部分实体,表中的属性也不能完全描述需求,数据库表间的关系没有体现,这就需要进入详细的数据库设计阶段来完善. 在数据库设计的第一阶段,还是围绕用户需求来展开工作.用户的需求在设计过程中扮演着中心角色,如果一开始对需求的分析就出现偏差,那数据库设计就很容易出现问题,好在需求分析阶段结束后我们的需求是十分明确的,项目组内根据项

手势识别项目小组——数据库设计心得

因为我们的项目是算法类,所以项目本身的需求不太明确.设计数据库的过程其实本身也是在进一步明确需求的过程. 这是我们画出的用例图: 以下是我们小组成员的数据库设计心得: JJ: 通过本次数据库设计的过程,我经历了很多也学会了很多. 首先因为课程组的要求是设计出至少15张表,而我们想要达到15张表是很困难的.我们的设计想法是先根据我们之前设计的原型先设计出一些表,根据登陆.注册.历史记录等设计了几张表.但是这些表也基本是基于用户而设计的,后来我们也寻求了指导老师的帮助,指导老师帮忙想了一个损失函数表

微擎及智能名片小程序安装步骤

微擎及智能名片小程序安装步骤 宝塔安装 1,ssh登录服务器,执行如下操作即可,需root用户身份安装 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 9b4e0b47 2,您想现在安装bt面板到www目录吗? 输入y 然后按回车下一步 3,安装宝塔完毕,服务器会提示宝塔面板的管理登录地址,账号密码(用电脑的浏览器访

图片智能识别小程序

图片智能识别小程序----免费图片转文字识别(文字可编辑),花草识别,车辆识别,中英翻译.语音合成,并含有快递查询.电话查询.银行卡查询等小工具. 小程序码 首页 花草识别 图片转文字 快递查询 小程序导航wq.xmaht.top 原文地址:https://www.cnblogs.com/mverting/p/9339028.html

创新课程管理系统数据库设计心得

因为创新课程管理系统这一个项目,是一个从无到有,没有标准可以去参考的一个项目. 这个项目专门针对该课程进行设计,所以需求的功能点很多,因此数据库有多次设计,更改再推翻重新设计再更改. 因为用户有多个类型,系统管理员,学校管理员,老师,助教,学生. 一开始的时候想把每一个都单独设计为一个表,然后登陆的时候选择身份后直接在对应的表里面进行查找即可.所以当时的用户表是如下的: 后来经过小班讨论课,又觉得可以把所有的用户全部放在一个表里面,即一个User表里面有所有用户的资料,不过这样会导致许多字段的空

智能查寝数据库设计心得

这次项目的数据库设计我们小组主要由苏文江同学负责,我并没有出多大力,但是我们组对于数据库的设计还是进行过许多讨论的,我也只是做了一点微小的工作.具体的设计情况就不多说了,其他几位成员的博客里面已经写得很详细了,下面就写一下相关的收获. 充分理解需求,明确实体之间关系 对于需求的充分理解,可以帮助我们节省大量的时间.通过对用户需求进行综合,归纳与抽象得到一个个实体,对实体之间的关系进行约束,便于我们对概念模型的设计. 表结构的设计是否合理 这样做的话,在之后的实际应用中,如果需求增加或者改变,不会

【软件工程】02组软件工程组队项目——课程管理小助手数据库设计文档

一.引言 1.1编写目的 数据库的表结构设计是整个项目开发中一个非常重要的环节,一个良好的数据库设计,可以提高开发效率,方便系统维护,并且为以后项目功能的扩展留下余地.我们通过书写这份文档说明,从各方面进行学生课程管理小助手系统的数据库设计规划,用它指导该系统在数据库各方面的内容,为系统开发的程序员.系统分析员提供基准文档.我们也希望通过写数据设计说明书,规范数据名称.数据范围.数据代码等.这份文档是项目小组共同作战的基础,有了开发规范.程序模块之间和项目成员之间的接口规则.数据方式,大家就有了

【小程序码 - 设计篇】菊花绽放

作者:lincolnlin,endyxu,changoran 2017 年四月,微信正式推出了小程序码.小程序码的使命及诞生的过程, 扫码背后藏了什么秘密?小程序码又为何长得像菊花? | 你问鹅答一文已经作过一番介绍.本文将为你剖析更多关于小程序码的技术细节. 小程序码的前世 初见小程序码,犹如一朵盛开的菊花. 其实这种脑洞大开的异形码并非微信首创,Facebook.kik.snapchat 等公司都研发了自己体系的码. 从设计的图形上,我们把上述方案简单分成: ? 平面类 如 qrcode ,