资源描述
贵州大学本科毕业论文(设计) 第 58 页
本科毕业论文(设计)
论文(设计)题目:健康社交社区系统的设计与实现
学 院: 计算机科学与技术
专 业: 软件工程
班 级: 10级软件(1)班
学 号: 1008060035
学生姓名: 肖露艳
指导教师: 陈 梅
2014 年 6 月 1 日
贵州大学本科毕业论文(设计)
诚信责任书
本人郑重声明:本人所呈交的毕业论文(设计),是在导师的指导下独立进行研究所完成。毕业论文(设计)中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。
特此声明。
论文(设计) 作者签名:
日 期:
目录
摘要 III
Abstract IV
第一章 绪论 1
1.1 背景及研究意义 1
1.2 国内外研究现状 2
1.3 论文的主要工作 3
1.4 论文的组织结构 4
第二章 相关技术 5
2.1 平台LAMP 5
2.2 开源SNS系统Ucenter Home 6
2.3 JavaScript库jQuery 6
2.4 图表库HighCharts 7
2.5 本章小结 8
第三章 健康社交社区系统的需求分析 9
3.1 系统的功能性需求 9
3.2 系统的非功能性需求 11
3.3 本章小结 11
第四章 健康社交社区系统的设计与实现 12
4.1 系统总体设计 12
4.2 数据库设计 20
4.2.1 数据库概念模型设计 20
4.2.2 数据库最终数据表设计 21
4.3 系统的开发平台与工具 26
4.4 系统的文件结构规定 26
4.5 系统的页面跳转处理方式 27
4.5.1 个人页面跳转处理 27
4.5.2 操作页面跳转处理 28
4.6 系统的模板语法 29
4.7 交互式图表的绘制 29
4.8 网站数据的采集和抽取 30
4.9 本章小结 31
五章 健康社交社区系统的测试与运行 32
5.1 系统的功能性测试 32
5.2 系统的运行示例 34
5.2.1 健康管理功能模块运行结果 34
5.2.2 饮食管理功能模块运行结果 37
5.2.3 医生管理功能模块运行结果 43
5.3.4 药物管理功能模块运行结果 46
5.3.5 提问管理功能模块运行结果 50
5.3.6 活动管理功能模块运行结果 51
5.3.7 个人主页管理功能模块运行结果 53
5.4 本章小结 56
第六章 总结与展望 57
6.1 总结 57
6.2 展望 57
参考文献 58
致谢 59
健康社交社区系统的设计与实现
摘要
随着慢性病群体的不断增大和慢性病患者的日益低龄化,慢病患者或亲属对于能够为自身保健治疗提供帮助的应用软件的需求持续增长。各种慢病健康管理和慢病病患交流网站大量涌现,其中某些网站已受到政府和业界的广泛关注。
本文的研究目标是构建一个满足慢病患者(以高血压和糖尿病为入手点)自身健康数据管理和保健交流需求的健康领域垂直社交网络系统。
全文首先介绍了当前健康社交网络领域的国内外研究和应用现状,并对所选的开发平台(LAMP)和技术(jQuery, HighCharts )进行了讲述,然后详细阐述了健康社交社区系统的设计与实现过程,最后详细讲述了健康社交社区系统的功能测试和运行示例。
关键词:慢性病 LAMP HighCharts 健康社交社区系统
The Design and Implementation of Social Community Health System
Abstract
With the continuous increase and increasingly younger age of chronic patients, people with chronic illnesses or their relatives are increasingly needing a software at present to provide assistance for their own health care. A variety of sites for chronic disease health management and chronic patients exchange have emerged, some of them have been widely concerned by government and people.
The goal of this paper is to build a health field vertical social networking system for chronic patients( hypertension and diabetes is the starting point) to manage their own health data and communicate with other chronic patients about health care.
Firstly, this paper introduced the research and application situation of social community health system at home and abroad. Secondly, it also gave an account of the selected development platform (LAMP, UCHome) and technologies(jQuery, HighCharts). And then it elaborated on the design and implementation of social community health system. Finally, it described the function testing and running sample of the social community health system in detail.
Keyword: Chronic LAMP HighCharts Social Community Health System
第一章 绪论
1.1 背景及研究意义
《中国慢性病防治工作规划(2012-2015年)》指出:影响人们身体健康的慢性病主要有心脑血管疾病和糖尿病等等。近几年来,慢病的发病率迅速上升,且低龄化趋势明显,目前已有2.6亿例慢病确诊患者;慢病造成的死亡人数已占到我国总死亡人数的85%;慢病引起的疾病负担已占我国总疾病负担的70%;慢病患者平均每年仅有6小时在医院接受医生的诊断和医治,其余的时间均在院外进行保健与治疗。
此外,健康长寿是人们梦寐以求的心愿,于是呵护人们身心的保健和医疗手段成为世人密切关注的问题。
众所周知,急性病发作快、治愈周期短,该类患者更倾向于医生的诊治与决策。而慢性病病程长,慢病患者在医院就诊和治疗的时间很短,基本都是在医院诊断,结合在家自我保健和治疗。是以关于慢病的控制与治疗,自我日常保健与医院医生的诊治同等重要。另外,我国目前医疗系统医疗资源相对较少、过于集中,且医生的交流带有极强的目的性,导致医疗效率不高、服务质量低。慢病病患在接受医生专业治疗的同时,更信任同病患者间的信息交流,彼此的经验共享、安慰和勉励更能够坚定他们战胜疾病的决心。
综上所述,满足慢性病患者健康数据管理与保健交流需求的社交网络系统的开发具有非常重大的价值与意义。能进行个人健康数据管理的社交化平台可以加强患者之间的沟通,建立相互信任,实现保健和治疗信息的交流与共享,从而提供更为准确的解决方法。它有利于个人健康状况的评估和良好生活习惯的养成;有助于病友间保健交流与信息共享,进而减少不必要的错误举措,少走弯路,提高人们的生活和保健质量;对用户健康体征数据、用药评价、医院医生就诊经验的统计与分析能为医学研究提供依据,加速临床医学的进程,促进社会可持续发展。
1.2 国内外研究现状
随着经济社会的不断发展,健康社交网络领域发展十分迅速。
l 国外
(1) PatientsLikeMe
面向病患、医护人员和医学研究员垂直社交网络。该网站更是在2007年12月被美国《财富》杂志列为“十五家即将改变世界的公司”之一,目前用户人数约为250000人,为病人提供健康体征数据(包括体重、血压、血糖等体征数据)管理和自检手段,住院治疗信息管理和用药分享,以及通过邀请病人和医护人员加入自建群组实现病友间、医患间的交流与互助。产生的大量医疗数据主要是为供医学研究员进行第一线的医学分析,加速临床实验的进程。
但它主要针对医学院研究人员,所以专业性较强,操作比较复杂,更不符合我们的使用习惯。
(2) HealthKeep
帮助联系和跟踪有类似病情、症状的病患的匿名医疗社交网站。它涵盖了美国所有拥有行医执照的医生资料,包括名字、地址、手机号;囊括了FDA准许的药物搜索、各类疾病的症状和医治步骤的数据查找。大夫和病患能通过该平台分享医疗上的一些发现和相关著作等资源。
但它只是单纯地为患者提供了分享医疗经历和医生聊天的功能,并未做任何系统分析,浪费了很好的医疗数据。
l 国内
(1) 和你在一起
面向病患,以话题讨论为主要形式的医疗经验问答与分享的社交网 站。它还包括一些简单地对疾病的介绍和医学科普。
但它仅限于问答形式,不能记录健康数据,不能评估自己的健康状况, 更没有健康分析,有很大的局限性。
(2) 病患如我
一个能分享医疗数据的病患社交互助软件。有些功能部分和“和你在一起”有点类似,患者通过加入对应的慢病社区与病友交流治疗经验和医疗资源。不同之处在于,它可以为自己或家人记录就诊和康复信息,在每一个对应疾病的分区里,用户讨论的药品种类、医院类别等数据会被进行统计,并整理成为统计图。
但它的健康数据、医疗数据统计略显粗糙,病友交流与互助功能体现 不明显,所谓的健康档案也是极其简单。
(3) eBelter
个人健康信息的管理。用户通过购买该公司所提供的医疗设备,如计步器、wifi体秤计、血压计、腕表等,在网站上选择设备类型、输入设备ID,就可以轻松管理自己的健康数据了,当然也可以手动添加健康信息记录,还可以查看基础分析报告。
但它的核心服务是个人健康数据的管理,且如果不成为VIP用户,只能提供简单的服务,生成的健康报告也是极为简单,缺乏准确性。
(4) 宜康网
它的核心服务也是个人健康数据的管理,和eBelter有点类似,但功能比其更丰富。例如:对血压、血糖等体征数据用丰富的图表(包括交互式折线图、饼图、报表等)呈现给用户。对饮食记录有热量的统计与分析,还根据用户所属慢病群组、体征数据及饮食记录进行了简单的食物推荐与判别食物是“宜吃”还是“禁吃”。并囊括了一些系统自定的健康任务供用户完成,以及制定一些测试问答供用户进行简单的健康测评。
但从用户体验角度来说,有些功能界面并不友好,比如:血糖的各种折线图呈现,给人以凌乱、晃眼的感觉。从功能角度来说,因为它不是社交化网站,所以没有病友社交、互助功能。显然,这是不够的。
1.3 论文的主要工作
本文将围绕健康社交社区系统的分析、设计与实现进行研究,并建立一个完整的软件工程开发流程,其中包括需求分析、系统设计、编码、测试流程。
1.4 论文的组织结构
本文的工作将从以下六章展开阐述:
第一章:绪论。提出本文的研究背景与意义,并阐述目前国内外的相关研究现状以及构建健康社交社区系统工作的必要性。
第二章:相关技术。调研和分析与健康社交社区系统开发相关的一些现有技术。
第三章:健康社交社区系统的需求分析。剖析健康社交社区系统的功能性和非功能性需求。
第四章:健康社交社区系统的设计与实现。依据数据库和软件工程的设计理念进行系统设计,并详细阐述了系统各关键功能的实现方法。
第五章:健康社交社区系统的测试与运行。包括本系统的功能性测试与运行示例。
第六章:总结与展望。对本文的工作进行总结,并提出对下一步工作的构想。
第二章 相关技术
本章将对健康社交社区系统的相关技术进行调研、分析与综述。
2.1 平台LAMP
LAMP网站架构是现下最为流行的Web框架,它包含四个组成产品:操作系统Linux,服务器Apache,数据库MySQL,编程语言Perl/ PHP/ Python,这些都是开源的软件。开源的LAMP在软件方面的投资成本较低,和J2EE架构相比,它拥有Web资源更丰富、更轻量,开发更迅速等优势;和.NET架构相比,它具备更通用、跨平台、性能高、价格低等特点。所以,LAMP不管是价钱、质量还是性能方面均为企业搭建网站的首选平台。
(1) Linux操作系统有许多个不同的发行版本,例如Ubuntu、CentOS、Red Hat Enterprise Linux和Debian等。CentOS是一个免费的高稳定性的服务器, 所以从稳定性与性能方面来说,操作系统采用CentOS是个很不错的选择。
(2) Apache是LAMP架构中最核心的网络服务器,它的优势在于开源、稳定、模块丰富。Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式都能够有效提高Apache的访问响应能力。因此Apache做为Web Server是负载PHP的最佳方案。
(3) MySQL是一个开源的数据库 ,它在数据存储上能够达到百万级别,在性能、稳定性与功能上更有着极大的优势。
(4) PHP是一种通用开源脚本语言[1, 2, 19, 20]。它的优势在于,应用程序执行的效率更高;能够支持几近全部当前流行的数据库和操作系统[20];开放源代码[19]和使用免费;PHP应用程序开发更迅速,运行更快速,技术本身学习更快;跨平台性更强大。
综上所述,LAMP架构具备成本更低廉、部署更灵活、开发更迅速、性能更稳定等优势。所以,本系统开发采用CentOs操作系统、Apache服务器、MySql数据库和PHP5架构。
2.2 开源SNS系统Ucenter Home
UCenter Home又称UCHome,它是一套采用PHP+MYSQL构建的开源社会化网络软件。它有着非常强大与丰富的功能。
(1) UCHome前台主要功能
记录功能:用户可以发表记录,还可以查看、评论别人的记录。
日志功能:用户可以发表日志,发表时可以对日志进行权限设置。还可以查看、评论别人的日志(前提是别人允许你查看TA的日志)。
群组功能:用户可以建立群组,在群组之内讨论相关的话题。
活动功能:用户发起活动,参加或邀请好友参加正在进行的活动。
相册功能:用户可以通过平台进行相册的建立和发布相片操作,对相册进行权限设置。
......
(2) UCHome后台主要功能
个人设置功能: 普通用户可以设置自己的个人资料和前台各功能模块的查看权限,可以更改头像和进行个性化设置(主要是个人主页的页面风格和时区设置)。
批量管理功能:普通用户可对前台各功能模块自己的记录进行编辑或批量删除;站长可对前台各功能模块所有用户的记录进行编辑和批量删除。
平台设置功能:站长(即管理员)能够登录该管理平台,设置该站点的某些参数。
2.3 JavaScript库jQuery
jQuery是当下最为流行的JavaScript库[13],它可以直接在浏览器上执行,不占用服务器资源。它的优点是原始JS和其它JS库所望尘莫及的。例如:
(1) 强大的选择器。它能够让开发者轻松地使用CSS几近全部的选择器和它本身独创的高级且复杂的选择器。
(2) 出色的DOM操作封装。它封装了众多常用的DOM操作,是以开发人员可以轻松地编写出与DOM操作相关的程序以完成种种原本很复杂的操作。
(3) 完美的Ajax。它将全部的Ajax操作封装到函数$.ajax里,当开发人员操纵Ajax时,可以不用操心浏览器的兼容性和XMLHttpRequest对象的创建和使用问题,能够心无旁骛地处理业务逻辑。
(4) 行为层与结构层的分离。开发者无需去html调用事件,而是直接利用jQuery选择器选中想要操纵的元素,而后直接给元素增添事件。
2.4 图表库HighCharts
Highcharts是一个用纯JS编写的图表库[16],它可以让开发者十分便利迅速地在web应用程序中绘制交互式图表,而且用HighCharts制作的图表不仅仅界面非常美观优雅,且因为是用JS编写,是以不必像Flash那般需要相应的插件才能够运行,运行速度也十分快。总体而言,Highcharts拥有无可比拟的优势,例如:
(1) 兼容性强。它是基于jQuery等成熟库的二次封装,包含了jQuery库的所有优点,完美支持当前全部浏览器。
(2) 开源免费。它对个人用户和非商业用途完全免费,为开发者免费提供源代码并且允许其能够任意地修改源代码。
(3) 丰富的图表类型。它支持多种常见的图表类型,包括饼图、曲线图、柱状图、区域图、散状图及综合图表[16]等,能够满足开发者的种种需要。
(4) 可交互的图表。相对于传统的静态图片形式的图表,更加实用、方便。例如,提示功能:即将鼠标移动到图表的某个数据点上,能够显示该数据点的详细数据,还能够对显示的效果进行个性化设置;放大的功能:HighCharts能够将许多的数据集中显示,且能够放大某一部分图形,继而使该图表的精度变大。
在Highcharts官方文件中,有众多的例子均是基于jQuery实现,因此本系统基于jQuery使用highcharts插件。
2.5 本章小结
本章从技术开发方面对健康社交社区系统需使用到的相关技术进行综述,包括LAMP网站架构框架、UCHome开源SNS软件的简介,jQuery的特点与优势,以及HighCharts图表库的特性等,为后续系统的开发奠定基础。
第三章 健康社交社区系统的需求分析
本章将通过功能性和非功能性需求两方面阐述健康社交社区系统的需求。
3.1 系统的功能性需求
健康社交社区系统是一个面向健康领域的垂直社交网络系统,而不单单只是一个社交化系统。因此,为了要满足慢性病(高血压、糖尿病等)患者的保健交流需求,该系统要能为患者提供个人健康体征数据管理、饮食管理、慢病药物管理、健康活动管理、健康提问管理和慢病医生管理等,还要能权限式分享个人健康数据(例如,血压和血糖等)、药物关注、医生关注信息等,并能方便地进行病友社交与互助。因此,健康社交社区系统需具备以下几个功能:
(1) 健康管理功能
包括血压和血糖管理。血压管理包括“我的血压记录”、“血压统计与分析”、“新增血压记录”。用户可以添加、删除、修改、查看自己的血压记录;可以按最近一天、最近一周、最近一月查看血压统计图。血糖管理类似,包括“我的血糖记录”、“平均血糖统计与分析”、“餐前血糖统计与分析”、“餐后血糖统计与分析”、“新增血糖记录”。用户可以添加、删除、修改、查看自己的血糖记录;可以按最近一天、最近一周、最近一月查看平均血糖统计图、餐前血糖统计图、餐后血糖统计图。其中,餐前和餐后血糖统计图还可以选择查看该时间段内的全部餐前(或餐后)、早餐前(或早餐后)、午餐前(或午餐后)、晚餐前(或晚餐后)的血糖统计图。
(2) 药物管理功能
包括“我关注的药物”、“好友关注的药物”、“大家关注的药物”、“全部慢病药物”、“药物关注排行榜”。依据药物的说明书和该药物的药效评价分享,对慢病患者提供用药帮助。用户可以按慢性病类别查看慢病药物信息并评论药物;可以添加、关注或取消关注药物,查看自己关注的药物、好友关注的药物、大家关注的药物;在“药物关注排行榜”模块,用户可以按慢性病类别查看药物关注度top10。
(3) 饮食管理功能
包括“我的饮食记录”、“饮食统计与分析”、“饮食排行榜”。用户可以在“我的饮食记录”首页(应该用一张大日历展示)单击某一天进入该天的饮食记录显示页面,并且饮食记录按早餐、上午加餐、午餐、下午加餐、晚餐和夜宵六个餐段区别显示。单击每个餐段的“+”号,可以添加饮食记录。添加饮食记录时,用户可以按食物库类别、食物类别类查询食物物,也可以收藏、添加食物到我的食物库,也可以修改、删除我的饮食记录;在“饮食统计与分析”功能模块,用户可以按一周、一个月、三个月、任意起止时间查看该期间内我的饮食记录次数,本模块的统计与分析也是按早餐、上午加餐、午餐、下午加餐、晚餐和夜宵六个餐段显示,单击每个餐段后的统计次数可以查看详细的饮食记录;在“饮食排行榜”模块,用户可以按食物类别查看饮食记录总次数top10。
(4) 医生管理功能
包括“我关注的医生”、“好友关注的医生”、“大家关注的医生”、“全部的慢病医生”、“医生关注排行榜”、“新增慢病医生”。用户可以按省份、城市、医院等级查看医院和医生信息,分享与评论看病经验;添加、关注医生;查看自己关注的医生、好友关注的医生、大家关注的医生;在“医生关注排行榜”模块,用户可以按慢性病类别查看医生关注度top10。
(5) 活动管理功能
包括“全部活动”、“同城活动”、“好友的活动”、“我的活动”、“发起新活动”。用户可以发起、修改、取消、关闭自己的活动;可以参加或取消参加、邀请好友参加活动;可以按我的、好友的、同城的、全部的活动等条件查看已有的活动。
(6) 提问管理功能
包括“大家的提问”、“好友的提问”、“我的提问”、“我表态过的提问”、“发表新提问”。用户可以添加、修改、删除自己的提问;可以回应他人的提问;可以按我的、好友的、大家的提问等条件查看已有的提问。
(7) 个人主页管理功能
用户可以查看自己的个人主页,在他人允许访问主页的情况下也可以访问他人的主页。个人主页上显示“活动”、“提问”、“健康”、“药物”、“医生”等功能模块,用户可以对个人主页上显示的模块进行隐私权限设置,可以设置成“全站用户可见”或“仅好友可见”或“仅自己可见”。
3.2 系统的非功能性需求
(1) 可用性需求
健康社交社区系统的功能必须完整,能彻底满足业务需要,还必须具备较强的容错能力。
(2) 易用性需求
该系统要求界面设计简洁美观、风格统一,主题突出,内容丰富,文字准确,并且系统操作简单、易于上手,界面存在相应的操作提示。
(3) 扩展性需求
健康社交社区系统在数据库和源代码的设计上要考虑到发展和移植的需要,建立良好的扩展性和伸缩性,为以后更多慢病种类的加入和其他扩展模块做好准备,充分体现开放性。
3.3 本章小结
本章首先对健康社交社区系统进行功能性需求分析,然后定义了本系统的可用性、扩展性、易用性等非功能性需求。我们将在第四章对获取来的需求进行建模,并对系统进行设计与实现。
第四章 健康社交社区系统的设计与实现
本章首先将对健康社交社区系统进行相应的技术设计,包括本系统的总体设计、数据库设计和系统的文件结构规定,并确定系统的开发平台与工具。最后将对系统页面跳转处理方式、系统模板语法、交互式图表绘制、对他人网站数据采集、分析和抽取等的具体实现进行详细阐述。
4.1 系统总体设计
本系统的功能模块主要包括活动管理、提问管理、健康管理、药物管理、饮食管理、医生管理、个人主页管理等功能模块,本系统结构图[17, 18]如图4.1所示。
图4. 1健康社交社区系统结构图
依据上一章节的需求画出各功能模块的流程图[17, 18],由于篇幅限制,现仅以部分功能模块为例。
(1) 健康管理模块流程图
健康管理模块下面又分为血压管理和血糖管理两个子模块,因篇幅限制,现仅以血糖管理模块为例画出其流程图。
添加血糖记录流程图如图4.2所示。
图4. 2 添加血糖记录流程图
编辑血糖记录流程图如图4.3所示。
图4. 3编辑血糖记录流程图
删除血糖记录流程图如图4.4所示。
图4. 4 删除血糖记录流程图
查看最近一周餐前血糖统计与分析流程图如图4.5所示,查看最近一天或最近一月餐前血糖统计与分析流程图。
图4. 5 查看最近一周餐前血糖统计与分析流程图
平均血糖统计与分析、餐后血糖统计与分析流程和餐前血糖统计与分析流程类似。
(2) 饮食管理模块流程图
添加、修改、删除饮食记录如图4.6所示:
图4. 6 添加、修改、删除饮食记录流程图
添加食物到用户自己的食物库如图4.7所示,从自己的食物库移除食物流程类似。
图4. 7 添加食物到自己的食物库流程图
查看饮食统计与分析流程图如图4.8所示。
图4. 8 饮食统计与分析流程图
查看饮食排行榜统计图流程图如图4.9所示。
图4. 9 查看饮食排行榜流程图
(3) 医生管理模块流程图
添加医生信息流程图如图4.10所示。
图4. 10 添加医生信息流程图
查看、关注、评论医生流程图如图4.11所示。
图4. 11 查看、关注、评论医生流程图
查看、取消关注用户自己关注的医生流程图如图4.12所示。查看好友关注的医生信息和大家关注的医生信息流程图类似。
图4. 12 查看、取消关注用户自己关注的医生流程图
查看医生关注排行榜统计图流程图如图4.13所示。
图4. 13 查看医生关注排行榜流程图
(4) 药物管理模块流程图
添加药物信息流程图如图4.14所示。
图4. 14 添加药物流程图
查看、关注、评论药物流程图如图4.15所示。
图4. 15 查看、关注、评论药物流程图
查看、取消关注用户自己关注的药物流程图如图4.16所示。查看好友关注的药物信息和大家关注的药物信息流程图类似。
图4. 16 查看、取消关注用户自己关注的药物流程图
查看药物关注排行榜统计图流程图如图4.17所示。
图4. 17 查看药物关注排行榜流程图
(5) 个人主页管理模块流程图
查看用户自己或其他用户的个人主页如图4.18所示。
图4. 18 查看个人主页流程图
个人主页隐私设置流程图如图4.19所示。
图4. 19 个人主页隐私设置流程图
4.2 数据库设计
4.2.1 数据库概念模型设计
根据第三章的陈述可以得知,需要对系统相关用户、活动信息、提问内容、血压记录、血糖记录、食物信息、药物信息、医院和医生信息等进行跟踪,由此可以抽象出用户、活动、提问、血压、血糖、食物、药物、医院和医生等实体[14]。本系统的概念模型[14]设计如图4.20所示。
图4. 20 健康社交社区系统的概念模型
说明:
针对健康管理功能模块,用户可以记录血压和血糖等健康体征数据,可以按相关条件查看其趋势图。所以创建用户、血压和血糖实体,并在用户与血压、用户与血糖之间建立一对多的联系。
针对饮食管理功能模块,用户可以进行饮食记录的管理。为了方便用户添加饮食记录,系统将提供食物库供用户选择,用户还能收藏食物到自己的食物库以及添加系统没提供的食物。所以创建食物类别、食物库、我的食物库,并在食物类别与食物库、食物类别与我的食物库之间建立一对多的联系,用户与食物库、用户与我的食物库之间建立多对多的联系。
针对医生管理功能模块,用户可以进行查看、添加、关注和评论医生等操作。所以创建医院和医生实体,并在医院与医生之间建立一对多的联系,用户与医生之间建立多对多的联系。
针对药物管理功能模块,用户可以进行查看、添加、关注和评价药物等操作。所以创建药物实体,并在用户与药物之间建立多对多的联系。
其他功能模块数据表的概念模型设计思想类似。
4.2.2 数据库最终数据表设计
表4. 1 用户表(uc_members)
字段名
数据类型
主键否
自增否
说明
uid
mediumint(8)
是
是
用户ID
username
varchar(15)
否
否
用户名
password
varchar(32)
否
否
用户密码
email
varchar(32)
否
否
注册邮箱
regip
int(10)
否
否
注册IP
regdate
int(10)
否
否
注册时间
表4. 2 血压表(pressure)
字段名
数据类型
主键否
自增否
说明
pressureid
mediumint(8)
是
是
血压ID
uid
mediumint(8)
否
否
用户ID
username
varchar(15)
否
否
用户名
highp
smallint(6)
否
否
高压
lowp
smallint(6)
否
否
低压
pulse
smallint(6)
否
否
脉搏
status
varchar(20)
否
否
血压状况
dateline
int(10)
否
否
时间
表4. 3 血糖表(sugar)
字段名
数据类型
主键否
自增否
说明
sugarid
mediumint(8)
是
是
血糖ID
uid
mediumint(8)
否
否
用户ID
username
varchar(15)
否
否
用户名
xuetang
float(2,1)
否
否
血糖
timetype
smallint(1)
否
否
采血时间段
bloodtype
smallint(1)
否
否
采血部位
status
smallint(1)
否
否
血糖状况
dateline
int(10)
否
否
时间
表4. 4 食物类别表(fcategory)
字段名
数据类型
主键否
自增否
说明
fcategoryid
mediumint(8)
是
是
食物类别ID
fcategoryname
varchar(20)
否
否
食物类别名
表4. 5 食物库表(food)
字段名
数据类型
主键否
自增否
说明
fid
mediumint(8)
是
是
食物库食物ID
fcategoryid
mediumint(8)
否
否
食物类别ID
fname
varchar(15)
否
否
食物名字
fimageurl
float(2,1)
否
否
食物图片URL
funit
smallint(1)
否
否
食物单位
表4. 6 我的食物库表(myfood)
字段名
数据类型
主键否
自增否
说明
myfid
mediumint(8)
是
是
我的食物库食物ID
fcategoryid
mediumint(8)
否
否
食物类别ID
fname
varchar(15)
否
否
食物名字
fimageurl
float(2,1)
否
否
食物图片URL
funit
smallint(1)
否
否
食物单位
uid
mediumint(8)
否
否
用户ID
username
varchar(15)
否
否
用户名
表4. 7 饮食记录表(diet)
字段名
数据类型
主键否
自增否
说明
dietid
mediumint(8)
是
是
饮食记录ID
fcategoryid
mediumint(8)
否
否
食物类别ID
ftype
smallint(1)
否
否
食物库类型(1代表食物库,2代表我的食物库)
fid
mediumint(8)
否
否
食物ID
uid
mediumint(8)
否
否
用户ID
username
varchar(15)
否
否
用户名
dateline
int(10)
否
否
具体时间
eattime
smallint(1)
否
否
餐段(1代表早餐,2代表上午加餐,3代表午餐,4代表下午加餐,5代表晚餐,6代表夜宵)
fname
varchar(15)
否
否
食物名称
fnum
varchar(5)
否
否
食物数量(如”苹果-1个”)
表4. 8 医院表(hospital)
字段名
数据类型
主键否
自增否
说明
hospitalid
mediumint(8)
是
是
医院ID
hospitalname
varchar(20)
否
否
医院名称
hospitalprovince
varchar(50)
否
否
医院所在省份
hospitalcity
varchar(50)
否
否
医院所在城市
hospitalgrade
varchar(20)
否
否
医院等级
dateline
int(10)
否
否
时间
表4. 9 医生表(doctor)
字段名
数据类型
主键否
自增否
说明
doctorid
mediumint(8)
是
是
医生ID
hospitalid
mediumint(8)
否
否
医院ID
department
varchar(50)
否
否
科室
doctorname
varchar(15)
否
否
医生姓名
doctortype
smallint(1)
否
否
医生类型(1代表高血压医生,2代表糖尿病医生)
doctorgrade
varchar(20)
否
否
医生职称
uid
mediumint(8)
否
否
用户ID
addtype
smallint(1)
否
否
添加类型(1代表系统添加,2代表用户添加)
goodat
varchar(200)
否
否
医生擅长
doctorurl
varchar(100)
否
否
医生在好大夫网站的个人简介URl
dateline
int(10)
否
否
时间
表4. 10 医生关注表(followdoctor)
字段名
数据类型
主键否
自增否
说明
followdoctorid
mediumint(8)
是
是
医生关注ID
doctorid
mediumint(8)
否
否
医生ID
doctortype
smallint(1)
否
否
医生类型(1代表高血压医生,2代表糖尿病医生)
uid
mediumint(8)
否
否
用户ID
username
varchar(15)
否
否
用户名
dateline
int(10)
否
否
时间
表4. 11 看病经验表(treatment)
字段名
数据类型
主键否
自增否
说明
treatmentid
mediumint(8)
是
是
看病经验ID
doctorid
mediumint(8)
否
否
医生ID
doctortype
smallint(1)
否
否
医生类型(1代表高血压医生,2代表糖尿病医生)
disease
varchar(20)
否
展开阅读全文