第三天业务题
3-1 你们的项目是如何进行参数校验的
在我们的项目中,通常使用以下2种方式进行参数校验:
1.手动校验:在方法内部,我们可以手动编写代码来对参数进行校验。例如,使用条件判断语句(if-else)来检查参数是否满足要求,如果不满足则抛出异常或返回错误信息。
2.使用注解校验:在后端使用Spring中的Validation进行校验,我们可以在参数上添加注解来校验。这些注解可以定义在实体类的字段上,或者方法的参数上,用于验证参数的合法性。例如,@NotNull用于检查参数是否为null,@Min和@Max用于检查参数的最小值和最大值。
3-2 详细说一下你们的问答系统用到了几张表,表中的主要字段有哪些,表关系是什么
我们的问答系统用到了三张表,分别是:用户表,问题表,回答/评论表。
用户表:存储用户信息,主要字段可能包括用户ID、用户名、头像等。
问题表:存储提出的问题,主要字段可能包括问题ID、问题内容、提问者ID、提问时间等。
回答表:存储问题的回答/评论,主要字段可能包括回答ID、回答内容、回答者ID、问题ID、回答时间等。
表之间的关系是:
用户表和问题表之间是一对多的关系,一个用户可以提出多个问题,但一个问题只能由一个用户提出。
问题表和回答表之间是一对多的关系,一个问题可以有多个回答,但一个回答只能对应一个问题。
3-3 你们为什么用Mongo, 而不用MySQL存储问题和评论
我们选择使用MongoDB存储问题和评论有以下两点:
首先,MongoDB是一个NoSQL数据库,可以存储海量数据,Mysql存储量远不如MongDB;
此外,MongoDB的文档存储模型也能够更好地支持问答系统中的多级嵌套数据结构,比如问题和对应的回答、评论等,MongoDB还适合存储价值较低的信息(例如:评论),而Mysql适合存储的是对信息安全性有高要求的数据(例如:用户个人信息)。
以上就是选择Mongo存储问题和评论的原因。
相关文章:
第三天业务题
3-1 你们的项目是如何进行参数校验的 在我们的项目中,通常使用以下2种方式进行参数校验: 1.手动校验:在方法内部,我们可以手动编写代码来对参数进行校验。例如,使用条件判断语句(if-else)来检…...
nestjs 装饰器
1、装饰器定义 装饰器是一种特殊的类型声明,它可以附加在类、方法、属性、参数上边 需开启tsconfig.json中 "experimentalDecorators":true 生成tsconfig.json文件 tsc -init 2、类装饰器 // 类装饰器 主要是通过符号添加装饰器 // 装饰器会自动把cl…...
一款开源且不限制大小可以设置过期时间的支持分享的的开源文件共享系统picoshare 部署教程
1.拉取镜像 2.部署 创建目录 mkdir -p /opt/picoshare/data 部署 其中:"somesecretpass"是密码 docker run \--env "PORT4001" \--env "PS_SHARED_SECRETsomesecretpass" \--publish 10005:4001/tcp \--volume "/opt/picoshare/data:…...
eBPF运行时安全
引言 eBPF作为当前linux系统上最为炙手可热的技术,通常被用于网络流量过滤和分析、系统调用跟踪、性能优化、安全监控,当下比较知名的项目有Cilium、Falco等。 Cilium 是一个开源的容器网络和安全性项目,致力于提供高效的容器通信和强大的安…...
Linux 系统中常见的命令,它们用于执行各种任务,包括文件和目录管理、系统信息查看、用户管理等
以下是一些在 Linux 系统中常见的命令,它们用于执行各种任务,包括文件和目录管理、系统信息查看、用户管理等。这里列举了一些基础的命令: 文件和目录管理: ls: 列出目录内容。 ls cd: 切换当前目录。 cd /path/to/directory …...
AutoEventWireup详解
AutoEventWireup详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们深入探讨.NET开发中一个神奇而强大的特性——AutoEventWireupÿ…...
SAP ABAP 自定义流水号 编号范围
前言 在开发中经常会遇到生成编号的需求(如接口报文ID,自建表数据主键等);为此,SAP提供了自动编号工具,能根用户需求设定并自动生成一组唯一的编号。 编号范围对象的创建 1.进入事务代码SNRO,创建一个编号范围对象。…...
安卓、ios系统详解
一、安卓 安卓系统架构:从上至下,依次是应用层、应用框架层、系统运行库层和Linux内核层 应用层(system app):系统内置的应用程序及非系统级的应用程序都属于应用层,负责与用于进行交互,一般都用java或者kotlin来开发应用框架层(java api framework):为应用层提供所需…...
含并行连结的网络(GoogLeNet)
目录 1.GoogLeNet 2.代码 1.GoogLeNet inception不改变高宽,只改变通道数。GoogLeNet也大量使用1*1卷积,把它当作全连接用。 V3耗内存比较多,计算比较慢,但是精度比较准确。 2.代码 import torch from torch import nn from t…...
计算机网络(第六版)复习提纲3
2.3 物理层下面的传输媒体 传输媒体是数据传输系统中在发送器和接收器之间的物理通道,有导引型传输媒体(有线)和非导引型传输媒体(无线) 1.双绞线:两条铜线绞合,以减少干扰,绞合度越…...
怿星科技测试实验室获CNAS实验室认可,汽车以太网检测能力达国际标准
2023年12月27日,上海怿星电子科技有限公司测试实验室(下称:EPT LABS)通过CNAS实验室认可批准,并于2024年1月5日正式取得CNAS实验室认可证书(注册号CNAS L19826),标志着怿星科技的实验…...
GORM 介绍及快速入门
GORM 介绍及快速入门 前言 GORM 是一个用 GoLang 语言编写的 ORM(对象关系映射)库。它被设计为开发者友好的方式来进行数据库操作。GORM 提供了一种高级的 API 来处理数据库的 CRUD(创建、读取、更新、删除)操作,它支…...
Scrcpy:掌握你的Android设备
Scrcpy:掌握你的Android设备 本文将介绍Scrcpy工具,它是一种强大的安卓设备控制工具,可以实现屏幕镜像、操作控制等功能。我们将探讨Scrcpy的基本原理和工作方式,并介绍如何使用Scrcpy连接和控制安卓设备。此外,我们还…...
[9, 8, 7, 6][1,2] = ?
当我们运行这段代码时,控制台中会记录什么值? const arr [9, 8, 7, 6]; const res arr[1, 2]; console.log(res);当我们运行这段代码时,res 的值将是 7。并且控制台中会打印出 7。 让我们来详细分析一下。 第一步:[1, 2] 会被转换成 [2]。 为什么? 后续的元素 [1, 2] …...
docker部署Jira+配置MySQL8数据库
写在前面:如果你通过docker安装Jira且启动过,然后你现在又想使用mysql数据库,需要注意 你除了停掉原有容器,还需要删除:/var/lib/docker/volumes/jiraVolume/_data下的文件,否则启动后会无法正常使用。注意…...
YOLOv5全网独家首发:DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,助力检测实现暴力涨点
💡💡💡本文独家改进:DCNv4更快收敛、更高速度、更高性能,完美和YOLOv5结合,助力涨点 DCNv4优势:(1) 去除空间聚合中的softmax归一化,以增强其动态性和表达能力;(2) 优化存储器访问以最小化冗余操作以加速。这些改进显著加快了收敛速度,并大幅提高了处理速度,DCN…...
HTML中常用标签--详解
目录 1.b/strong标签 2.i/em 标签 3.u标签 4.del删除线 5.br换行 6.p标签 * 7.pre 预处理标签 8.span标签** 9.div标签*** 10.sub标签 11.sup标签 12.hr标签 13.hn标签 14.HTML5中语义标签 特殊字符 15.多媒体标签 img*** a 标签*** 第一种用法:…...
Vue实现字符串首字母大写、翻转字符串、获取用户选定的文本
目录 Vue2实现字符串首字母大写Vue3实现字符串首字母大写Vue2实现翻转字符串Vue3实现翻转字符串Vue2获取用户选定的文本Vue3获取用户选定的文本 Vue2实现字符串首字母大写 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"…...
基于springboot+vue的旅游网站系统(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…...
GB/T28181-2022之图像抓拍规范解读和设计实现
技术背景 GB/T28181-2022相对2016版,对图像抓拍有了明确的界定,图像抓拍在视频监控行业非常重要, Android平台GB28181设备接入端,无需实时上传音视频实时数据的情况下,就可以抓图上传到指定的图像存储服务器上。 图像抓拍基本要…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...
基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究
摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...
Yii2项目自动向GitLab上报Bug
Yii2 项目自动上报Bug 原理 yii2在程序报错时, 会执行指定action, 通过重写ErrorAction, 实现Bug自动提交至GitLab的issue 步骤 配置SiteController中的actions方法 public function actions(){return [error > [class > app\helpers\web\ErrorAction,],];}重写Error…...
鸿蒙Navigation路由导航-基本使用介绍
1. Navigation介绍 Navigation组件是路由导航的根视图容器,一般作为Page页面的根容器使用,其内部默认包含了标题栏、内容区和工具栏,其中内容区默认首页显示导航内容(Navigation的子组件)或非首页显示(Nav…...
