业务题day03

3-1 你们的项目是如何进行参数校验的

我们项目中使用Java Bean Validation规范进行参数校验,该规范定义了一组注解,用于对方法参数、类属性等进行校验。

在需要进行参数校验的对象上添加注解,如@NotNull、@NotBlank、@Min、@Max等。这些注解可以限制参数的非空、最小值、最大值等条件。

在方法中使用@Valid注解对参数对象进行校验,在方法参数上使用@BindingResult对象接收校验结果,并进行错误处理。

在错误处理中,可以获取到校验失败的字段和对应的错误信息,并返回给前端或进行其他操作。

可以自定义校验注解和校验器,以满足特定的业务需求。可以自定义一个@UniqueUsername注解,用于校验用户名的唯一性。

除了使用Java Bean Validation,还可以结合其他框架或工具进行参数校验,如Spring Validation等。

通过以上方式在项目中进行参数校验,确保传入的参数符合预期的规则和条件。

3-2 详细说一下你们的问答系统用到了几张表,表中的主要字段有哪些,表关系是什么

我们这个问答系统用到了两张表, 互动问题表 和 互动回答评论表。

互动问题表中的主要字段有 问题id、问题标题、问题描述、所属课程id、所属课程章id、所属课程节id、提问学员id、最新一个回答的id、问题下回答的数量、是否匿名、是否被隐藏、管理端查看问题状态、提问时间、更新时间 。

互动回答评论表中的主要字段有 回复id、问题id、回复的上级回答id、回复者id、回复内容、回复的目标用户id、回复的目标回复id、评论数量、点赞数量、是否被隐藏、是否匿名、创建时间、更新时间。

表间关系:一个用户可以提多个问题,也可以回答多个问题,和对一个问题回答多次,一个问题可以有多个回答,一个回答也可以有多个回答及评论。

3-3 你们为什么用Mongo, 而不用MySQL存储问题和评论

这是因为在存储问题和评论这种可能包含多个属性和嵌套结构的数据时,MongoDB比MySQL更合适。

因为MongoDB是一个非关系型(NoSQL)数据库,它能够轻松地处理复杂的数据结构和变化频繁的数据模式。

相较之下MySQL是一个关系型(RDBMS)数据库,它用表格的形式组织数据,并通过事先定义好的模式进行存储。

当需要存储包含多个属性和嵌套结构的数据时,MySQL需要创建多个表格并进行关联,而这样的操作会导致复杂度提高。

除此之外,MongoDB采用的是BSON(Binary JSON)格式,它能够更有效地存储和检索JSON数据类型。

所以在存储问题和评论这种可能包含大量JSON格式数据的情况下,MongoDB也能有更好的性能表现。

最后,MongoDB还支持高效的查询和索引功能,能够满足实时访问和快速检索数据的需求。

所以,在需要高度灵活性、可扩展性和高性能的场景中,往往选择MongoDB。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/625271.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s-pod的控制器

pod控制器的概念 工作负载,workload,用于管理pod的中间层,确保pod资源符合预期的状态 预期状态 1、副本数 2、容器的重启策略 3、镜像拉取策略 pod出现故障时的重启等等 pod控制器的类型 1、replicaSet 指定pod副本的数量 三个组件 …

深入浅出关于go web的请求路由

文章目录 前言一、是否一定要用框架来使用路由?二、httprouter2.1 httprouter介绍2.2 httprouter原理2.3 路由冲突情况 三、gin中的路由总结 前言 最近重新接触Go语言以及对应框架,想借此机会深入下对应部分。 并分享一下最近学的过程很喜欢的一句话&am…

架构的未来:微前端与微服务的融合

目录 前言 微服务架构简介 微前端架构简介 微前端与微服务的融合 1. 共享服务 2. 基于事件的通信 3. 统一的身份和认证 4. 交付管道的集成 示例:使用微服务和微前端的电子商务平台 微服务架构 微前端架构 融合微服务和微前端 总结 作者简介…

rollup + typescript 搭建项目

一、创建项目 1、初始化项目 1、创建一个项目目录,进入该目录 2、执行 npm init -y 生成 package.json 3、执行 tsc --init 生成 tsconfig.json 2、安装依赖 (1)安装 typescript 和 rollup-plugin-typescript npm install -D typescript …

明明的随机数【C语言】

【华为机试题 HJ3】明明的随机数 描述输入描述:示例1参考代码1参考代码2描述 明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。 数据范围: 1≤ n ≤1000 ,输入…

【打卡】牛客网:BM93 盛水最多的容器

题目: 考虑到盛水容器的特殊性。双指针从最两边开始遍历,遍历过程中舍弃最小的。 不知道原理。 模板的: class Solution { public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*…

数学建模 | 数学建模常用的十种解题方法

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 数学建模常用的十种解题方法 摘要一、蒙特卡罗算法1 蒙特卡罗计算重积分…

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图的圆切图,Kotlin(4)

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图的圆切图,Kotlin(4) 这篇 Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin&am…

C语言详解之一维数组二维数组以及变长数组

一周新的开始,今天的你学习了吗? 前言 今天打算把数组的相关知识知识复习一下,比如初始化,调用,以及他和指针的关系等等 数组是什么 数组是一种数据结构,它由相同类型的元素组成,并按照一定的…

burp靶场-path traversal

路径遍历 1.路径遍历漏洞 ### 什么是路径遍历 路径遍历也称为目录遍历。这些漏洞使攻击者能够读取正在运行应用程序的服务器上的任意文件。这可能包括&#xff1a; 应用程序代码和数据。 后端系统的凭据。 敏感的操作系统文件。### <img src"/loadImage?filename218…

springCould中的Stream-从小白开始【12】

&#x1f95a;今日鸡汤&#x1f95a; 见过一些人&#xff0c;他们朝九晚五&#x1f62d;&#xff0c;有时也要加班&#xff0c;却能把生活过得很&#x1f60e;有趣。他们有自己的爱好&#xff0c;不怕独处。他们有自己的坚持&#xff0c;哪怕没人在乎。&#x1f926;‍♂️ 开心…

FASTQ 文件压缩格式有哪些?

FASTQ 文件压缩格式 .gz .bz2 .xz .rfq .rfq.xz FASTQ 文件是用于存储测序数据的一种格式&#xff0c;它包含了大量的文本信息&#xff0c;因此通常占用大量的存储空间。为了有效地处理和传输这些数据&#xff0c;通常需要对 FASTQ 文件进行压缩来节省存储空间及传输带宽。以下…

xbox如何提升下载速度?

提高Xbox的下载速度可以通过以下几种方法&#xff1a; 连接稳定的网络&#xff1a;使用有线以太网连接而不是无线连接&#xff0c;因为有线连接通常更稳定且速度更快。 关闭正在运行的游戏和应用程序&#xff1a;运行游戏或应用程序会消耗网络资源和处理能力&#xff0c;关闭它…

Qt点击按钮在其附近弹出一个窗口

效果 FS_PopupWidget.h #ifndef FS_POPUPWIDGET_H #define FS_POPUPWIDGET_H#pragma once#include <QToolButton> #include <QWidgetAction> #include <QPointer>class QMenu;class FS_PopupWidget : public QToolButton {Q_OBJECTpublic:FS_PopupWidget(QW…

Linux Kdump分析宕机问题案例

文章目录 1. 查看问题原因2. 找出哪一行代码触发的宕机3. 查看宕机函数传入参数的值方法一&#xff1a;使用struct查看结构体的值方法二&#xff1a;使用rd命令查看对应内存的值 1. 查看问题原因 GNU gdb (GDB) 7.6 Copyright (C) 2013 Free Software Foundation, Inc. Licens…

PXE 高效批量网络装机

前提&#xff1a; 虚拟机恢复到初始化 调整网卡为vm1 关闭防火墙 安全linux systemctl stop firewalld vim /etc/selinux/config 配置IP地址 vim /etc/sysconfig/network-scripts/ifcfg-ens33 重启网卡 systemctl restart network 挂载磁盘 安装yum源 安装服务 yum install vs…

Redis相关命令详解及其原理

Redis概念 Redis&#xff0c;英文全称是remote dictionary service&#xff0c;也就是远程字典服务。这是kv存储数据库。Redis&#xff0c;包括所有的数据库&#xff0c;都是请求-回应模式&#xff0c;通俗来说就是数据库不会主动地要给前台推送数据&#xff0c;只有前台发送了…

美团2024届秋招笔试第一场编程真题(js版本)

1.小美的外卖订单 简单的加法逻辑&#xff0c;需要注意的是各个数据的边界问题 折扣价不能超过原价减的价格不能超过满的价格满减优惠仅限原价购入 const rl require("readline").createInterface({ input: process.stdin }); void (async function () {let count…

ENVI5.6版本中规则与不规则图像裁剪操作

图像裁剪的目的是将研究之外的区域去除&#xff0c;常用的是按照行政区划边界或自然区划边界进行图像的裁剪&#xff0c;在基础数据生产中&#xff0c;还经常要做标准分幅裁剪。按照ENVI的图像裁剪过程&#xff0c;可分为规则裁剪和不规则裁剪。 ENVI5.6之前版本的图像裁剪工具…