第一章 绪论
1.1 研究背景和意义
药饮是中医药服务中不可缺少的一部分,由于具有安全性高、适应症广等特点,在慢性病的防治以及亚健康人群的调养上发挥着不可替代的作用。伴随着社会健康观念的转变,群众对于个性化、精准医疗的认识不断提高,传统的药饮推荐方式已经不能满足多样化、复杂化的实际需要,普遍存在决策效率低、方案单一、人工容易出错等问题,在药饮的应用推广过程中起着阻碍作用1。目前,医疗信息化发展迅速,人工智能、大数据分析等技术正改变着医疗服务方式,给医疗资源的分配和利用效率带来很大影响。药饮个性化推荐是中医"治未病"思想在信息化环境下的深入实践,必须创建起智能化系统来回应公众的健康需求。协同过滤算法可以发掘用户的喜好和以前的行为特征,有利于药饮的推荐,有较好的药饮推荐应用前景2。在产业转型和居民健康管理需求的共同驱动下,依靠信息技术开发出药饮个性化推荐系统,既可以弥补传统模式的不足,又符合医疗服务智能化、精细化的发展趋势,对行业的可持续发展有着十分紧迫的价值。
药饮个性化推荐系统对于提高医疗服务效率、科学决策水平有明显的优势。基于协同过滤算法的解决办法可以达到用户健康需求同药饮资源精准对接的目的,明显削减人工干涉过程中产生的主观偏差,改善方案制订的科学性与合理性。此系统使用多种数据分析方法来冲破传统推荐路径依附以及知识的瓶颈状况,从而给各种体质和症状的人群赋予多样化的药饮搭配方案。系统应用到医药服务机构、健康管理平台和居民个人端,不仅可以拓宽中医药饮的推广渠道,而且可以促进整个行业的服务质量以及智能化水平的提高。依靠药饮知识库的创建以及个性化的推送,促使用户健康素养及自我管理能力得到提高,从而推动健康信息化社会的形成。该种创新实践很好地体现了现代信息技术同传统医学相结合所取得的积极效果,对推进医疗服务模式的转型、提升全民健康水平有着十分重要的现实意义。
1.2 国内外研究现状
1.2.1 国内研究现状
近些年来,国内有关药饮以及中药推荐领域系统的创建渐渐由数据管理转向智能决策。早期的相关研究大多只是建立基本信息库、简单的检索,随着机器学习、知识工程的发展,研究者也开始把用户的动作特征和中医药理论结合起来做推荐。技术路线由单个算法模型变成多数据源的融合,使用范围由辅助诊断扩大到日常生活中的健康管理以及个性化的服务。该演变过程给后来学者开展协同过滤和知识图谱结合的推荐系统研究指明了清晰的演进脉络。
陈剑峰在2024年对协同过滤算法在中药推荐中是否适用进行了系统的探究,主要解决了数据稀疏性以及冷启动的问题,所建立的推荐框架为本系统用户行为建模模块提供算法选择的依据,有利于提高新用户的初始推荐效果3。李春雨等(2025)研究了基于知识图谱的中药推荐方法,用语义关联网络加强了中药和病症之间的推荐解释性,给本系统中药知识学习模块关联知识呈现提供技术参考4。董芳在2021年对药饮在夏季养生的使用方式进行了梳理,发现药饮与现代人健康需求之间存在着内在联系,给本系统药饮信息管理模块内容组织提供场景化的思路5。关剑平于2017年对药饮由传统医疗形态向日常饮料转变的历史过程进行了系统的分析,其研究成果对于本系统在药饮分类管理上加入文化溯源的考虑是有益的6。2013年尧水根对制茶方法和食药饮关系演变过程进行研究,给药饮信息推荐浏览模块功能设计提供历史维度支持7。
从上面的国内研究可以看出,现有的成果对于本系统的算法模型、知识表达和文化溯源有着良好的基础。目前行业趋势正在由单一技术的应用向功能融合、用户体验改善转变,但是大部分研究还是集中在算法层面的改进上,缺少把用户交互行为(收藏、点赞、浏览记录等)和个性化推荐结合起来的完整实践。本系统功能设计上把体质测评、多维行为记录和协同过滤算法结合起来,是对于目前研究中用户全生命周期数据利用的一种补充,特别针对药饮这个垂直领域实现了从知识学习到反馈闭环的全部过程。
1.2.2 国外研究现状
国外对于草本饮品以及个性化推荐方面的研究,表现出一种跨学科合作并且依靠数据的共同推进的发展趋势。相关成果大多集中于原料标准化分析、用户偏好建模和文化背景融合这三个方面。近些年来,知识图谱扩散机制以及图神经网络被应用到传统的医学推荐当中,使得推荐的结果更加准确,也更加容易被理解。另外,根据民族植物学的调查研究给推荐系统加入了新的数据维度,使推荐模型由单纯的优化技术变成了考虑人文因素的推荐模型。
Muzammil等在2026年就草药饮品成分标准化以及理化分析方法展开研究,所形成的原料数据规范给本系统药饮信息管理模块的数据质量控制赋予了科学支撑8。Sulaiman等2026年对叙利亚沿海地区的民族植物学进行调查,发现地域饮食习惯会对草药茶的选择偏好产生很大的影响,该发现可以用于本系统体质测评模块的问卷设计中考虑地域文化因素9。2025年张等提出TCMDiffPR模型,把知识图谱扩散机制同传统医学推荐融合起来,依靠用户偏好传播路径加强了个性化推荐的解释性,给本系统推荐算法模块提供了一些可借鉴的扩散思路10。Mehta等人于2025年对甜叶菊草本茶的健康益处做了综合评述,他们采用的细化功效分类法给本系统药饮信息推荐浏览模块的标签体系创建赋予了参照框架11。2023年Xiaoyan等开发的多图残差注意力网络模型把语义知识和多源特征结合起来,在中药推荐准确率上取得了突破,给本系统协同过滤算法和知识图谱融合的实现路径提供技术启示12。
对照国外的研究可以发现,国际学术界对于推荐模型的精细化以及解释性方面走在了前面,并且十分重视文化背景和用户偏好的深度耦合。国外研究更看重复合网络结构和注意力机制,数据层面是标准化同民族植物学调查的结合。借鉴以上先进思想,在国内药饮应用环境中进行本土化改良,把国外复杂的网络模型简化为更适合国内开发的协同过滤结构,在功能上加强体质检测、行为记录联动的功能,使推荐结果更符合国内用户认知习惯和操作环境。
1.3 主要研究内容
本文针对目前用户在药饮选择过程中存在信息孤岛、个性化匹配不够的问题,提出了一个基于协同过滤算法的药饮个性化推荐系统,以提高中药养生领域信息服务的质量和用户体验。在需求分析阶段,系统充分考虑到药饮用户行为特征和中药知识结构,对普通用户、管理员进行了功能的划分,即中药知识学习、药饮信息推荐与反馈、体质测评、档案与记录管理、后台药饮分类、信息与评价管理等,使系统既考虑了用户的方便又保证了数据的安全。架构设计使用B/S三层结构,使前后端相分离,可以支持大量用户同时访问以及动态推荐服务。系统设计阶段主要针对用户的体质信息、体验反馈以及历史操作记录展开协同过滤算法的运用,从而达成用户药饮偏好智能识别并个性化推荐的效果,进而构建起一个包含知识学习和健康干预的闭环系统,并且设置好平台稳定性和可扩展性。系统采用Python语言以及Django框架,数据层用MySQL进行持久化处理,协同过滤算法贯穿在推荐模块中,保证推荐的准确性以及实时性。系统测试主要是从功能完整性、推荐效果、操作响应等几个方面来开展测试工作。本研究主要针对个性化推荐、体质档案闭环服务展开,没有对药效机理做深入剖析以及医学决策支持。最终成果为一个完整的推荐闭环加上后台管理,支持分级用户操作和高效的数据交互的中药饮推荐系统,对协同过滤技术在中医药领域的个性化服务效果进行了全方位的验证,并且具有一定的推广前景。
第二章 相关技术介绍
2.1 Python
Python依靠简洁、一致的语法以及成熟生态系统支持服务端快速开发,使用面向对象和函数式范式相结合的方式表达业务逻辑更加贴近领域的概念。药饮个性化推荐系统在数据处理阶段要对评分、点赞、浏览等行为展开清洗、归一和特征构造,Python标准库以及科学计算生态在内存运算、文本处理、矩阵计算等方面具有较好的适配性,可以形成稳定的管道,并且可以减少实现的复杂度。运行时跨平台特性以及虚拟环境机制,可以使得开发、测试、部署等阶段保持依赖一致,从而降低由于环境不同造成的服务不可靠风险13。
工程上Python适合把推荐计算、体质测评规则处理、反馈入库等任务拆分成可以复用的模块,用清晰的接口约束来达到解耦的目的。依赖管理以及单元测试框架可以对核心逻辑的边界条件进行检验,从而提高在线服务在高并发环境下所具有的可维护性。对外接口的数据序列化、异常处理和日志记录都可以在统一的中间层中实现,从而达到代码风格一致的目的,并有利于问题定位。
2.2 Django
Django是Python Web框架,具有成熟的请求路由、模板渲染、表单校验和安全防护功能,重视约定和组件化组合,适合创建面向多角色的业务系统。药饮个性化推荐系统有普通用户和管理员两种入口,Django的认证授权体系以及中间件机制可以把身份校验、权限控制、会话管理这些横切逻辑集中到一个链路上去,降低重复代码。ORM对数据库操作进行抽象,把药饮信息、评价反馈、体质档案等实体映射成可以维护的模型层,并且依靠迁移机制来保证数据结构的稳定演进14。
从接口组织上看,Django可以将推荐结果查询、体验反馈提交、收藏和点赞等行为封装成视图和服务层合作的形式,用序列化和校验来控制输入的质量,防止脏数据进入推荐训练集。后台管理场景可以通过管理站点的功能快速创建基本的操作界面,然后用自定义的管理动作、查询集等满足数据分析、内容管理等要求,降低后台开发成本,保持一致的审计和日志策略。
2.3 MySQL
MySQL是关系型数据库管理系统中使用最广的一个,具有事务、索引、查询优化、复制等功能,适合用来存储结构化的数据,并且保证数据的一致性。药饮个性化推荐系统要在药饮条目、用户体质档案、体验反馈、行为记录这四个实体间建立起明确的关系,关系模型可以体现主外键约束并且具备数据一致性的可验证性。InnoDB引擎的事务隔离以及行级锁的使用方式更适合于处理并发写的场景,可以防止点赞、收藏等高频率操作造成的写入冲突问题,用合理的联合索引以及覆盖索引来提高行为检索的速度15。
MySQL数据治理上规范化建模减少冗余,用视图和存储过程封装常用的统计逻辑,把后台数据分析所需要的聚合计算推到数据库侧。对于需要进行训练的推荐算法所用到的交互矩阵,可以采用增量同步的方式将行为日志按照时间窗口进行落库,并且保持时间戳索引。备份恢复、主从复制等机制也给线上故障回滚、读写分离打下了基础,保证核心数据可用且可追溯。
2.4 协同过滤算法
协同过滤算法把用户行为相似性或者物品相似性当作核心假设,依靠历史交互来推测潜在偏好,主要的实现方式有基于用户的邻域方法、基于物品的邻域方法和矩阵分解类方法。药饮个性化推荐系统里,用户对于药饮料的点赞、收藏、浏览以及体验反馈可以被简化为隐式或者显式的偏好信号,协同过滤在不需要复杂的特征情况下可以产生推荐排序,并且对于新的交互可以快速做出反应。相似度度量和邻域截断策略对召回质量有影响,并且会对计算成本产生影响,离线时可以先计算出相似度矩阵并进行缓存,在线时则完成候选的生成以及重排序16。
工程落地的时候会出现稀疏性和冷启动的情况,行为矩阵过稀会导致相似度不稳定,可以采取时间衰减、最小交互阈值、热门回退等方式保证推荐的覆盖程度。对体质测评造成的偏好先验,在召回阶段可以当作过滤条件或者加权因子和协同信号相结合使用,提高结果的相关性以及可解释性。在线服务要控制计算延迟,把用户最近的行为当作增量输入,同预计算的相似物品列表联合起来执行快速候选扩展,依靠日志回流不断修正相似度和权重参数。
第三章 系统需求分析
3.1 可行性分析
3.1.1 技术可行性
本系统基于Python进行开发,结合Django框架和MySQL数据库,整体架构成熟稳定,能够充分满足数据存储、信息交互及高并发访问的技术需求。协同过滤算法可为药饮推荐提供有效的算法支撑,有利于实现个性化推荐目标。系统技术栈均为主流技术,文档资料丰富,相关难题具有良好的可攻克性,为后续开发和迭代提供了坚实基础。
3.1.2 操作可行性
系统界面设计注重简洁直观,用户操作流程明晰,普通用户可以通过引导完成体质测评、药饮浏览、信息反馈等核心功能,操作复杂度较低。各项功能分区明确,有助于提升用户体验,减少学习门槛。后台管理模块对管理员操作流程进行了有效优化,能够满足日常数据管理与分析需求,确保用户和管理员均能高效完成业务目标。
3.1.3 经济可行性
本系统主要依赖开源技术及通用硬件资源,开发及运行期间无需大规模资金投入,有助于控制整体成本。开发过程中资源利用率高,维护费用低,便于长期运行与后续升级。系统功能聚焦实际需求,避免了资源的重复浪费,使得项目建设与投入结构更为合理,经济上具备广泛可行性与持续性。
3.2 功能需求分析
3.2.1 普通用户功能
普通用户在系统中完成中药知识学习,浏览中药知识内容并掌握基础药性信息;查看药饮料信息,检索药饮详情与适用人群;进行药饮体验反馈,提交评价与使用感受;浏览药饮信息推荐,接收个性化推荐结果并查看推荐列表;参与体质测评,完成答题生成体质结论;查看体质档案,获取历史测评记录;管理个人行为记录,查看收藏、点赞、浏览等历史数据。
普通用户角色用例图如图3-1所示。
图3-1普通用户用例图
3.2.2 管理员功能
管理员在系统后台开展数据分析,查看用户行为、药饮热度、评价分布等统计结果;管理药饮分类,维护分类层级与展示状态;管理药饮信息,维护药饮基础信息、成分说明、适用体质与推荐属性;管理评价反馈,审核用户评价内容并处理异常反馈;管理体质档案,查询用户测评档案并维护档案数据;管理中药知识,发布与维护知识内容;管理体质检测答题,维护题库与选项规则;管理用户权限,配置账号角色与访问权限。
管理员角色用例图如图3-2所示。
图3-2管理员用例图
第四章 系统设计
4.1 系统架构设计
系统采用分层结构来组织功能和数据流。用户界面层为普通用户提供知识学习、药饮信息浏览、体质测评、档案查看、收藏点赞、浏览记录等操作入口,并提供管理员数据查询、内容管理入口。应用服务层使用Django完成业务编排,包含药饮信息及分类管理、评价反馈处理、体质检测答题及档案生成、协同过滤推荐计算以及结果服务等17。数据持久层用MySQL存储用户、药饮、标签、行为日志和评价数据,并且支持事务以及查询。系统支持层提供权限控制、日志审计、异常处理和基础配置管理。系统架构图如图4-1所示。
图4-1系统架构图
4.2 系统结构功能设计
本系统为普通用户、管理员两类用户服务,主要实现药饮个性化推荐以及管理的全过程支持。普通用户可以进行中药知识学习、药饮料信息查看、药饮体验反馈、药饮信息推荐浏览、体质测评、体质档案查看、收藏、点赞、浏览记录管理等操作。管理员可以对后台数据进行分析、对药饮进行分类管理、对药饮进行信息管理、对评价反馈进行管理、对体质档案进行管理、对中药知识进行管理、对体质检测答题进行管理、对用户权限进行管理等,从而达到对平台内容以及用户进行全面的监管和维护的目的。该系统的功能结构如图4-2所示。
图4-2系统功能结构图
4.2.1 体质测评流程设计
该流程用于引导普通用户完成体质测评并生成结论。用户进入测评后,系统首先判断是否已登录,未登录则提示登录并结束。已登录则进入答题提交,系统再判断答案是否完整,完整则生成体质结果并保存档案,不完整则提示补全并结束,体质测评流程图如图4-3所示
图4-3体质测评流程图
4.2.2 药饮信息推荐浏览流程设计
该流程用于向普通用户展示个性化药饮信息推荐。用户进入推荐页后,系统判断是否存在体质档案,无档案则跳转体质测评并结束。有档案则生成推荐列表并展示,随后判断用户是否选择收藏,选择则写入收藏记录,不选择则直接结束,实现推荐浏览闭环,药饮信息推荐浏览流程图如图4-4所示
图4-4药饮信息推荐浏览流程图
4.2.3 药饮体验反馈流程设计
该流程用于采集用户对药饮的体验评价以支撑系统优化。用户进入反馈入口后,系统判断是否已购买或体验,未体验则直接结束。已体验则提交评分与文字内容,系统再判断内容是否合规,合规则保存反馈并更新统计,违规则拒绝提交并结束,从而保证数据质量,药饮体验反馈流程图如图4-5所示
图4-5药饮体验反馈流程图
4.2.4 药饮信息管理流程设计
该流程用于管理员维护药饮基础数据与展示信息。管理员进入管理页后,系统判断是否具有管理权限,无权限则结束。有权限则提交新增或编辑信息,系统判断信息是否完整,完整则保存并上架,缺失则驳回并结束,以保障数据一致性与前台展示可靠性,药饮信息管理流程图如图4-6所示
图4-6药饮信息管理流程图
4.2.5 评价反馈管理流程设计
该流程用于管理员对用户评价与反馈进行审核处置。管理员进入反馈列表后,系统判断是否具备审核权限,无权限则结束。有权限则选择待处理反馈并审核,系统判断是否通过,通过则公开展示并计入分析,未通过则下架并记录原因,最终形成可追溯的管理结果,评价反馈管理流程图如图4-7所示
图4-7评价反馈管理流程图
4.3 数据库设计
数据库设计属于系统执行数据持久化以及业务逻辑处理的根基。关系型数据库依靠成熟的事务机制以及数据完整性约束,可以很好地保证多用户并发操作时数据的正确性。本系统使用MySQL数据库,按照第三范式对表结构进行设计,从而降低数据重复出现的几率,防止出现更新异常的情况。用主键、外键和各种约束条件来定义数据库层给上层应用提供稳定的存取数据的服务。合理的索引设计可以提高查询效率,在协同过滤算法经常访问用户评分数据的时候,对响应速度有明显的影响18。
4.3.1 概念设计
药饮信息实体主要包括药饮id、药饮名称、功效描述等。实体属性图如图4-8所示。
图4-8药饮信息实体属性图
用户信息实体主要包括用户id、用户名、密码等。实体属性图如图4-9所示。
图4-9用户信息实体属性图
评分记录实体主要包括评分id、用户id、药饮id、评分值等。实体属性图如图4-10所示。
图4-10评分记录实体属性图
投票话题实体主要包括话题id、话题名称、发起时间等。实体属性图如图4-11所示。

图4-11投票话题实体属性图
投票选项实体主要包括选项id、话题id、选项内容等。实体属性图如图4-12所示。

图4-12投票选项实体属性图
投票参与实体主要包括参与id、用户id、选项id等。实体属性图如图4-13所示。

图4-13投票参与实体属性图
新闻信息实体主要包括新闻id、标题、正文内容等。实体属性图如图4-14所示。

图4-14新闻信息实体属性图
反馈信息实体主要包括反馈id、用户id、反馈内容等。实体属性图如图4-15所示。
图4-15反馈信息实体属性图
管理员信息实体主要包括管理员id、账号、密码等。实体属性图如图4-16所示。

图4-16管理员信息实体属性图
图4-17系统E-R图
4.3.2 数据库表设计
药饮信息表主要是用来存储药饮的基本信息、功效成分及统计数据。主要包括药饮名称、药饮类别、适用体质、药饮功效等字段。如表4-1所示。
表4-1药饮信息表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | medicine_drink_information_id | int | 11 | 是 | 是 | 药饮信息id |
| 2 | name_of_medicine_drink | varchar | 64 | 否 | 否 | 药饮名称 |
| 3 | drink_category | varchar | 64 | 否 | 否 | 药饮类别 |
| 4 | applicable_physique | varchar | 64 | 否 | 否 | 适用体质 |
| 5 | drug_drink_efficacy | varchar | 64 | 否 | 否 | 药饮功效 |
| 6 | medicinal_drink_ingredients | text | 65535 | 否 | 否 | 药饮成分 |
| 7 | preparation_method | text | 65535 | 否 | 否 | 制作方法 |
| 8 | drug_drink_specificss | longtext | 4294967295 | 否 | 否 | 药饮详情 |
| 9 | picture_of_medicine_drink | varchar | 255 | 否 | 否 | 药饮图片 |
| 10 | hits | int | 11 | 是 | 否 | 点击数 |
| 11 | collect_len | int | 11 | 是 | 否 | 收藏数 |
| 12 | comment_len | int | 11 | 是 | 否 | 评论数 |
用户账户表主要是用来存储系统登录账号的认证信息与状态。主要包括用户名、密码、用户组、状态等字段。如表4-2所示。
表4-2用户账户表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | user_id | int | 11 | 是 | 是 | 用户id |
| 2 | username | varchar | 16 | 是 | 否 | 用户名 |
| 3 | password | varchar | 64 | 是 | 否 | 密码 |
| 4 | user_group | varchar | 32 | 否 | 否 | 用户组 |
| 5 | state | smallint | 6 | 是 | 否 | 状态 |
注册用户表主要是用来存储用户补充的个人信息与审核状态。主要包括用户姓名、用户性别、用户年龄、用户手机等字段。如表4-3所示。
表4-3注册用户表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | registered_user_id | int | 11 | 是 | 是 | 注册用户id |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 4 | user_age | double | - | 否 | 否 | 用户年龄 |
| 5 | users_phone | varchar | 16 | 是 | 是 | 用户手机 |
体质档案表主要是用来存储用户体质测评结果与健康建议。主要包括体质类型、身体状况、饮食情况、推荐药饮等字段。如表4-4所示。
表4-4体质档案表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | physique_file_id | int | 11 | 是 | 是 | 体质档案id |
| 2 | type_of_constitution | varchar | 64 | 否 | 否 | 体质类型 |
| 3 | physical_condition | text | 65535 | 否 | 否 | 身体状况 |
| 4 | dietary_situation | text | 65535 | 否 | 否 | 饮食情况 |
| 5 | recommended_drink | text | 65535 | 否 | 否 | 推荐药饮 |
测评问卷表主要是用来管理体质测评活动的基本信息。主要包括问卷名称、状态、开放开始时间、开放结束时间等字段。如表4-5所示。
表4-5测评问卷表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | exam_id | mediumint | 9 | 是 | 是 | 问卷id |
| 2 | name | varchar | 32 | 是 | 否 | 问卷名称 |
| 3 | status | varchar | 10 | 否 | 否 | 状态 |
| 4 | open_start | datetime | - | 否 | 否 | 开放开始时间 |
| 5 | open_end | datetime | - | 否 | 否 | 开放结束时间 |
题目表主要是用来存储测评问卷中的具体题目与选项。主要包括所属问卷、题目、类型、选项等字段。如表4-6所示。
表4-6题目表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | exam_question_id | mediumint | 9 | 是 | 是 | 题目id |
| 2 | exam_id | mediumint | 9 | 是 | 是 | 所属问卷 |
| 3 | title | varchar | 255 | 否 | 否 | 题目 |
| 4 | type | varchar | 20 | 否 | 否 | 类型 |
| 5 | question_item | varchar | 500 | 否 | 否 | 选项 |
用户答题表主要是用来记录用户参与测评的详细答案与得分。主要包括考试id、用户id、答案、分数等字段。如表4-7所示。
表4-7用户答题表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | user_answer_id | mediumint | 9 | 是 | 是 | 用户答题id |
| 2 | exam_id | mediumint | 9 | 是 | 是 | 考试id |
| 3 | user_id | mediumint | 9 | 是 | 否 | 用户id |
| 4 | answers | text | 65535 | 否 | 否 | 答案 |
| 5 | score | double | - | 否 | 否 | 分数 |
评价反馈表主要是用来收集用户对药饮的饮用体验与评分。主要包括药饮名称、评分分数、评价内容、饮用体验等字段。如表4-8所示。
表4-8评价反馈表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | evaluation_feedback_id | int | 11 | 是 | 是 | 评价反馈id |
| 2 | name_of_medicine_drink | varchar | 64 | 否 | 否 | 药饮名称 |
| 3 | scoring_score | varchar | 64 | 否 | 否 | 评分分数 |
| 4 | evaluation_content | text | 65535 | 否 | 否 | 评价内容 |
| 5 | drinking_experience | text | 65535 | 否 | 否 | 饮用体验 |
操作日志表主要是用来记录管理员在后台的关键操作行为。主要包括用户账号、用户角色、模块名称、创建时间等字段。如表4-9所示。
表4-9操作日志表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | operation_log_id | int | 11 | 是 | 是 | 操作日志id |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户账号 |
| 3 | user_group | varchar | 64 | 否 | 否 | 用户角色 |
| 4 | routes | varchar | 64 | 否 | 否 | 模块名称 |
| 5 | create_time | datetime | - | 是 | 否 | 创建时间 |
第五章 系统实现
5.1 普通用户功能实现
5.1.1 中药知识学习功能实现
中药知识学习功能主要是对中药相关信息的学习资源进行管理与展示,系统提供中药知识内容的结构化呈现。普通用户能够在线查阅已整理的相关知识资料。该模块实现知识内容的动态加载与访问控制。中药知识学习界面如图5-1所示。
图5-1中药知识学习界面
5.1.2 药饮料信息查看功能实现
药饮料信息查看功能主要是对药饮对应的核心信息进行可视化展示,普通用户可检索系统中的药饮条目信息。该功能实现药饮信息的统一检索与呈现操作。药饮料信息查看界面如图5-2所示。
图5-2药饮料信息查看界面
5.1.3 药饮体验反馈功能实现
药饮体验反馈功能主要是对用户药饮感受进行收集与管理,普通用户能够提交个人饮用体验记录。系统对反馈内容进行有效归档和状态更新。药饮体验反馈界面如图5-3所示。
图5-3药饮体验反馈界面
5.1.4 药饮信息推荐浏览功能实现
药饮信息推荐浏览功能主要是对个性化推荐内容进行推送与展示,普通用户可浏览基于协同过滤算法计算得到的药饮推荐列表。该功能实现推荐结果的实时生成及分发。药饮信息推荐浏览界面如图5-4所示。
图5-4药饮信息推荐浏览界面
5.1.5 体质测评功能实现
体质测评功能主要是对用户体质类型进行智能评估,普通用户能够完成系统提供的体质测评问答。在该功能中,可实现测评数据采集与体质状态判定。体质测评界面如图5-5所示。
图5-5体质测评界面
5.1.6 体质档案查看功能实现
体质档案查看功能主要是对用户历史体质数据进行归档与输出,系统可支持对测评结果的长期记录展现。普通用户能够查看个人体质档案历史数据及变动情况。体质档案查看界面如图5-6所示。
图5-6体质档案查看界面
5.1.7 收藏记录查看功能实现
收藏记录查看功能主要是对用户收藏信息进行数据管理,普通用户可执行对收藏内容的快查操作。该模块完成对收藏条目的集中展示和状态维护。收藏记录查看界面如图5-7所示。
图5-7收藏记录查看界面
5.1.8 点赞记录查看功能实现
点赞记录查看功能主要是对药饮点赞行为进行数据呈现,普通用户能够直观浏览系统已记录的点赞历史。系统对点赞结果进行归类与统计处理。点赞记录查看界面如图5-8所示。
图5-8点赞记录查看界面
5.1.9 浏览记录查看功能实现
浏览记录查看功能主要是对用户在平台的访问路径进行跟踪展现,普通用户能够查阅系统内自身的浏览活动历史。该功能实现浏览记录的动态生成与状态归档。浏览记录查看界面如图5-9所示。
图5-9浏览记录查看界面
5.2 管理员功能实现
5.2.1 后台数据分析功能实现
后台数据分析功能主要是对系统相关运行数据进行汇总管理,管理员能够查看各项关键指标及统计信息。该功能实现多维度数据的可视化与自动化报告生成。后台数据分析界面如图5-10所示。
图5-10后台数据分析界面
5.2.2 药饮分类管理功能实现
药饮分类管理功能主要是对药饮类别体系进行结构化配置,系统负责维护分类标准及其层次结构。管理员可进行类别的增删改操作。药饮分类管理界面如图5-11所示。
图5-11药饮分类管理界面
5.2.3 药饮信息管理功能实现
药饮信息管理功能主要是对药饮核心资料进行归档处理,管理员能够执行药饮内容的编辑与调整。该模块完成药饮数据的统一录入、审校和维护。药饮信息管理界面如图5-12所示。
图5-12药饮信息管理界面
5.2.4 评价反馈管理功能实现
评价反馈管理功能主要是对用户评价内容进行集中处理,系统可自动归集所有药饮体验反馈信息。管理员可审核并分类相关评价数据。评价反馈管理界面如图5-13所示。
图5-13评价反馈管理界面
5.2.5 体质档案管理功能实现
体质档案管理功能主要是对用户体质相关信息进行后台维护,管理员可以进行体质档案的批量更新与修正。该功能实现档案信息的状态调整与权限管控。体质档案管理界面如图5-14所示。
图5-14体质档案管理界面
5.2.6 中药知识管理功能实现
中药知识管理功能主要是对中药知识库存进行编辑与维护,系统提供内容的录入、修改与版本追踪能力。管理员能够对知识条目信息进行管控。中药知识管理界面如图5-15所示。
图5-15中药知识管理界面
5.2.7 体质检测答题管理功能实现
体质检测答题管理功能主要是对体质量表题目与答案配置进行优化处理,管理员能够调整测评相关问题与设定标准答案。该模块实现题库的维护与试题状态流转。体质检测答题管理界面如图5-16所示。
图5-16体质检测答题管理界面
5.2.8 用户权限管理功能实现
用户权限管理功能主要是对平台用户账号权限进行细致设定与分配,管理员可更改用户角色或权限等级。系统对权限变更进行实时同步与权限结构更新。用户权限管理界面如图5-17所示。
图5-17用户权限管理界面
第六章 系统测试
6.1 测试目的
系统测试旨在全面验证基于协同过滤算法的药饮个性化推荐系统各项核心功能的实现情况,对业务逻辑与设计规格的匹配度进行严密检验,分析模块接口间的低耦合度与系统交互的准确性19。通过边界容错与全链路数据一致性测试,排查功能漏洞与异常操作,保障线上环境下系统的稳定运行与访问安全,降低上线风险,确保平台在实际应用场景中具备良好鲁棒性20。
6.2 测试方法
测试采用黑盒测试与白盒测试相结合的方式,覆盖功能性验证、边界值分析、异常处理与流程闭环。黑盒测试着重从用户操作视角检验输出结果与预期的一致性,关注系统各业务模块的交互准确性及数据一致性。白盒测试则从代码层面分析核心算法、接口调用与逻辑实现,确保模块间数据流清晰、业务规则准确匹配。为控制上线风险,测试流程涵盖初级功能、自有数据场景及异常流程,系统压力测试用于评估高并发环境下平台的稳定性。
6.3 测试用例
(1)药饮料信息查看功能
药饮料信息查看功能用于为用户展示详细的药饮料推荐及相关介绍,药饮料信息查看功能测试如表6-1所示。
表6-1药饮料信息查看功能测试表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 药饮料详情展示 | 查询指定药饮料 | 显示完整信息 | 符合预期 |
| 多品类切换 | 浏览不同药饮料分类 | 分类切换准确 | 符合预期 |
| 图文说明加载 | 展示药饮料说明图片文字 | 图文信息完整一致 | 一致 |
(2)体质测评功能
体质测评功能用于实现用户体质检测并生成测评结果,体质测评功能测试如表6-2所示。
表6-2体质测评功能测试表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 答题流程完整 | 完成全部体质测评题目作答 | 自动生成测评报告 | 符合预期 |
| 测评结果展示 | 查看测评档案 | 显示对应报告 | 一致 |
| 边界数据校验 | 输入边界答案 | 测评结果合理 | 测试成功 |
(3)药饮体验反馈功能
药饮体验反馈功能用于采集用户对药饮体验的意见及评价,药饮体验反馈功能测试如表6-3所示。
表6-3药饮体验反馈功能测试表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 提交反馈 | 输入反馈内容并提交 | 反馈数据有效记录 | 一致 |
| 查看反馈记录 | 用户查看历史反馈 | 展示反馈列表准确 | 符合预期 |
| 管理反馈数据 | 管理员访问反馈数据 | 数据完整匹配 | 测试成功 |
(4)药饮信息推荐功能
药饮信息推荐功能通过协同过滤算法为用户自动生成个性化药饮推荐列表,药饮信息推荐功能测试如表6-4所示。
表6-4药饮信息推荐功能测试表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 个性化推荐展示 | 用户访问推荐列表 | 展示个性化结果 | 一致 |
| 推荐精度校验 | 模拟多种用户体质 | 推荐信息符合特征 | 符合预期 |
| 推荐数据稳定性 | 切换用户身份 | 推荐数据无异常变化 | 测试成功 |
(5)后台数据分析功能
后台数据分析功能用于管理员统计用户行为与药饮推荐效果,后台数据分析功能测试如表6-5所示。
表6-5后台数据分析功能测试表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 行为数据统计 | 管理员生成分析报表 | 数据统计准确无误 | 一致 |
| 推荐算法效果分析 | 分析药饮推荐数据分布 | 报告生成可靠 | 符合预期 |
| 图表展示稳定性 | 多条件下查看数据图表 | 图表内容完整 | 测试成功 |
测试结论
测试过程中各项核心功能均实现了设计规格的交互准确性与数据一致性,业务逻辑闭环处理效果良好。无论用户端还是后台管理模块,功能表现稳定,输出结果与预期一致。核心推荐算法在多体质场景下推荐结果精度达标,系统整体架构稳定。测试结果显示平台符合上线风险控制要求,为药饮个性化推荐应用提供可靠支撑。