From d06229e7050d521dd653b478b9a5f7939c9e72e9 Mon Sep 17 00:00:00 2001 From: mayx Date: Thu, 29 Jun 2023 18:53:24 +0000 Subject: Update file 2023-06-30-nucleic-acid.md --- _posts/2023-06-30-nucleic-acid.md | 92 +++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 46 deletions(-) (limited to '_posts') diff --git a/_posts/2023-06-30-nucleic-acid.md b/_posts/2023-06-30-nucleic-acid.md index 1331eed..de0ac49 100644 --- a/_posts/2023-06-30-nucleic-acid.md +++ b/_posts/2023-06-30-nucleic-acid.md @@ -115,51 +115,51 @@ tags: [核酸检测, 后端, 系统设计, 论文] 此外,为了进一步确保核酸检测登记系统数据库的可靠性和完整性,我们还对其进行了详细设计。详细设计涵盖了数据库的各个方面,包括数据类型、数据表结构、索引等等。通过仔细考虑每一个细节,我们能够确保该数据库能够准确地存储、管理和检索所有的检测数据,并能够满足各种数据操作的要求。因此,在进行详细设计时,我们不仅仅关注数据库的功能和性能,还需要考虑到系统的可维护性和扩展性,以便在未来的运营过程中能够方便地进行系统的更新和维护。以下内容是该数据库的详细设计。 在进行核酸检测时,通常需要对试管的状态进行检测,因为试管的状态与被检测者的状态是对应的。因此,在设计检测流程时,我将重点记录试管的状态信息。在下表中,我们可以看到有关试管状态的信息,这些信息将有助于我们进行准确的核酸检测。 #### 表 核酸检测管信息表结构 -|字段名|类型|长度|索引及关系|注释| +| 字段名 | 类型 | 长度 | 索引及关系 | 注释 | | - | - | - | - | - | -|id|int|11|主键|主键ID| -|serial|varchar|11|唯一键|管码| -|fuid|int|10|关联user表id|所属用户ID| -|status|enum|0,1||状态(0=未检,1=阴性,2=阳性)| -|is_del|enum|0,1||软删除| -|create_time|datetime|||添加时间| -|update_time|datetime|||更新时间| +| id | int | 11 | 主键 | 主键ID | +| serial | varchar | 11 | 唯一键 | 管码 | +| fuid | int | 10 | 关联user表id | 所属用户ID | +| status | enum | 0,1 | | 状态(0=未检,1=阴性,2=阳性) | +| is_del | enum | 0,1 | | 软删除 | +| create_time | datetime | | | 添加时间 | +| update_time | datetime | | | 更新时间 | 在存储公告信息的过程中,为了方便管理和使用,我设计了一个包含标题、内容和图片信息的数据表。标题信息是公告的主题,通过标题可以快速地了解公告的内容和主要信息。内容信息则是公告的详细描述,可以包括公告的发布时间、地点、目的、重要性等内容。在某些情况下,公告可能需要配有图片信息,以便更直观地展示公告的内容和意义。因此,我在设计表格时特别留出了图片信息的存储空间。通过这些信息的存储和管理,我们可以更加高效地发布和管理公告,同时也可以使公告信息更加全面和直观。这样有助于提高公告的传播效果和实际效果,确保公告信息得到更好地传递和利用,具体表结构见下表。 #### 表 公告数据表结构 -|字段名|类型|长度|索引及关系|注释| +| 字段名 | 类型 | 长度 | 索引及关系 | 注释 | | - | - | - | - | - | -|id|int|11|主键|主键ID| -|title|varchar|255||标题| -|content|text|||内容| -|media_url|varchar|255||媒体URL| -|uid|int|10|关联user表id|添加者(仅超管)| -|is_del|enum|0,1||软删除| -|create_time|datetime|||添加时间| -|update_time|datetime|||更新时间| +| id | int | 11 | 主键 | 主键ID | +| title | varchar | 255 | | 标题 | +| content | text | | | 内容 | +| media_url | varchar | 255 | | 媒体URL | +| uid | int | 10 | 关联user表id | 添加者(仅超管) | +| is_del | enum | 0,1 | | 软删除 | +| create_time | datetime | | | 添加时间 | +| update_time | datetime | | | 更新时间 | 为了使后台管理人员和微信用户都能够方便地使用系统,我在设计用户信息表时特别考虑了用户权限的管理和用户身份的识别。为此,我同时设计了密码和微信OpenID字段。密码字段可以使后台管理人员设置用户密码,以便管理人员能够轻松地通过用户名和密码登录系统进行管理操作。微信OpenID字段则是为了便于微信用户在登录系统时进行身份识别和权限验证,从而能够更加便捷地使用系统的各种功能。通过这样的设计,系统不仅可以实现后台管理和微信用户端的统一管理,而且也使得系统更加简洁和易用,具体表结构见下表。 #### 表 用户信息表结构 -|字段名|类型|长度|索引及关系|注释| +| 字段名 | 类型 | 长度 | 索引及关系 | 注释 | | - | - | - | - | - | -|id|int|11|主键|主键ID| -|name|varchar|11||用户名| -|password|char|32||密码(md5)| -|uniqid|char|18|唯一键|身份证号码或员工号码(登录用)| -|gid|enum|1,2,3,4||组ID(1=普通用户,2=扫码员,3=检测员,4=超管)| -|wechat_openid|char|29|唯一键|微信OpenID| -|is_del|enum|0,1||软删除| -|create_time|datetime|||添加时间| -|update_time|datetime|||更新时间| +| id | int | 11 | 主键 | 主键ID | +| name | varchar | 11 | | 用户名 | +| password | char | 32 | | 密码(md5) | +| uniqid | char | 18 | 唯一键 | 身份证号码或员工号码(登录用) | +| gid | enum | 1,2,3,4 | | 组ID(1=普通用户,2=扫码员,3=检测员,4=超管) | +| wechat_openid | char | 29 | 唯一键 | 微信OpenID | +| is_del | enum | 0,1 | | 软删除 | +| create_time | datetime | | | 添加时间 | +| update_time | datetime | | | 更新时间 | 由于核酸检测中往往会存在混检的情况,即多个人的检测样本可能会被混在一起进行处理,因此在设计数据库表格时需要特别注意用户和检测管之间的关系。为了更好地处理这种情况,我将用户与检测管的关系设计为多对多的关系,即一个用户可能对应多个检测管,一个检测管也可能对应多个用户。这样,当出现混检情况时,我们可以通过用户与检测管之间的关联表来准确地确定每个检测管中所包含的样本属于哪些用户,从而可以快速地解决混检问题。下表是用户与检测管的关联表的表结构,包括用户ID、检测管ID等字段,这些字段将为用户和检测管之间的关系提供关键信息。 #### 表 用户-检测管关联表结构 -|字段名|类型|长度|索引及关系|注释| +| 字段名 | 类型 | 长度 | 索引及关系 | 注释 | | - | - | - | - | - | -|id|int|11|主键|主键ID| -|kid|int|11|关联kit表id|检测管ID| -|uid|int|11|关联user表id|用户ID| -|add_time|datetime|||添加时间| +| id | int | 11 | 主键 | 主键ID | +| kid | int | 11 | 关联kit表id | 检测管ID | +| uid | int | 11 | 关联user表id | 用户ID | +| add_time | datetime | | | 添加时间 | ## 4.3 本章小结 本章详细介绍了核酸检测登记系统的系统设计。明确了系统设计的目标和预期的成果,为项目的顺利实施奠定了基础。设计实现了数据库的搭建,确保系统的数据存储和管理能够高效、稳定地运行。详细描述了系统的接口,以确保系统的各个模块之间能够良好地交互和通信。通过对系统接口的设计描述,为最后的相关系统的实现打下了坚实的基础。 @@ -232,27 +232,27 @@ Db::query("SELECT user.`name`, kit.`status`, user_kit.add_time FROM user_kit INN 在开发过程中,环境测试的重要性不言而喻。在测试过程中,尽可能多地考虑不同软硬件条件下的情况可以最大化地发现问题。因此,建议在不同的操作系统环境和不同的计算机硬件环境下进行测试[[15]](#ref15)。 对于关键测试的软件环境,我们的程序主要是在微信客户端上运行,因此测试主要针对微信上的运行环境进行。其次,我们也在Android系统、iOS系统以及Android模拟器上进行了测试,除此之外,还有后端API接口是在服务器上运行,也会对其进行测试,具体测试内容如下表所示: #### 表 关键环境测试列表 -|软件环境|硬件环境|软件|测评对象|能否使用| +| 软件环境 | 硬件环境 | 软件 | 测评对象 | 能否使用 | | - | - | - | - | - | -|Android 12|Redmi K20 Pro|微信|公众号页面|能| -|iOS 13|iPhone 12|微信|公众号页面|能| -|Android 12|Xiaomi 12|微信|公众号页面|能| -|Android 13|WSA模拟器|微信|公众号页面|能| -|MacOS 13|Macbook Pro|PHP|后端API|能| -|Ubuntu 22|阿里云服务器|PHP|后端API|能| -|Windows Server 2022|阿里云服务器|PHP|后端API|能| +| Android 12 | Redmi K20 Pro | 微信 | 公众号页面 | 能 | +| iOS 13 | iPhone 12 | 微信 | 公众号页面 | 能 | +| Android 12 | Xiaomi 12 | 微信 | 公众号页面 | 能 | +| Android 13 | WSA模拟器 | 微信 | 公众号页面 | 能 | +| MacOS 13 | Macbook Pro | PHP | 后端API | 能 | +| Ubuntu 22 | 阿里云服务器 | PHP | 后端API | 能 | +| Windows Server 2022 | 阿里云服务器 | PHP | 后端API | 能 | ## 6.3 软件性能测试 性能测试是一种测试方法,用于测量软件系统在不同的工作负载下的性能、稳定性和可靠性,以确定系统性能瓶颈和性能瓶颈的原因。在设计性能测试时,需要考虑系统的关键性能指标,并设计测试用例以验证这些指标。对于本系统来说,响应时间和并发数是比较重要的性能指标,因此,在设计性能测试时主要针对这两点进行测试[[16]](#ref16)。 为了测试系统的性能,我们以后台登录为示例,设计了一个性能测试用例表,结果如下表所示。 #### 表 性能测试用例表 -|用例名称|描述|预期结果| +| 用例名称 | 描述 | 预期结果 | | - | - | - | -|正常登录测试|输入正确的用户名和密码,登录系统|登录响应时间在3秒以内,用户能够成功登录系统| -|错误用户名测试|输入错误的用户名和正确的密码,尝试登录系统|登录响应时间在3秒以内,系统提示用户名或密码错误| -|错误密码测试|输入正确的用户名和错误的密码,尝试登录系统|登录响应时间在3秒以内,系统提示用户名或密码错误| -|多用户并发测试|多个用户同时登录系统|系统能够处理多个用户的请求,并保持响应时间在3秒以内| -|长时间登录测试|单个用户长时间登录系统|系统能够保持响应时间稳定,并不会出现登录超时或登录失败的情况| +| 正常登录测试 | 输入正确的用户名和密码,登录系统 | 登录响应时间在3秒以内,用户能够成功登录系统 | +| 错误用户名测试 | 输入错误的用户名和正确的密码,尝试登录系统 | 登录响应时间在3秒以内,系统提示用户名或密码错误 | +| 错误密码测试 | 输入正确的用户名和错误的密码,尝试登录系统 | 登录响应时间在3秒以内,系统提示用户名或密码错误 | +| 多用户并发测试 | 多个用户同时登录系统 | 系统能够处理多个用户的请求,并保持响应时间在3秒以内 | +| 长时间登录测试 | 单个用户长时间登录系统 | 系统能够保持响应时间稳定,并不会出现登录超时或登录失败的情况 | ## 6.4 测试功能及测试用例设计 设计测试用例是为了检查程序路径是否满足某些特定要求,测试用例包含实际测试输入、执行条件和预期结果。整个测试任务的核心工作在于测试用例的设计,因为好的测试用例可以直接揭示系统中的潜在问题。通过解决这些潜在问题,可以大幅提升系统的性能和用户体验。在功能测试过程中,测试用例的设计一般包括四个部分:主题、前提条件、执行步骤和期望输出结果。以下以进行核酸检测接口为例设计测试用例,并总结测试结果[[17]](#ref17)。 -- cgit 1.4.1-2-gfad0