3-1 你们的项目是如何进行参数校验的
我们的项目主要使用validation来进行参数校验的
1.首先引入依赖:在项目中引入Hibernate Validator的依赖,例如Maven的pom.xml文件中添加相应的依赖项。
2.然后定义校验规则:在需要校验的参数上使用Hibernate Validator提供的注解,如@NotNull、@Size、@Min、@Max等。可以根据需要组合多个注解来定义更复杂的校验规则。
3.其次执行参数校验:在需要进行参数校验的地方,使用Validator对象对参数进行校验。可以通过注入或者手动创建Validator对象。
4.最后处理校验结果:根据校验结果,判断参数是否通过校验。如果有校验错误,可以从校验结果中获取错误信息,进行相应的处理。
3-2 详细说一下你们的问答系统用到了几张表,表中的主要字段有哪些,表关系是什么
在我们的项目中,涉及到两个微服务和三张表的问答系统。这三张表分别是用户微服务的用户表、学习微服务的问题表和回答表。
用户表包含了用户的信息,如用户id、用户名和用户图片等。
问题表主要记录了问题的相关信息,包括问题id、问题内容、问题描述、提问人id、最后一个回答人id、问题回答数量以及一些业务相关的字段。
回答表则用于存储回答的内容,包括回答id、问题id、评论id、回答人id、回答的内容、回复的目标用户id、回复的目标回答id、回答次数以及一些业务相关的字段。
这三张表之间的关系如下:一个用户可以提出多个问题,也可以回答多个问题,并且对于同一个问题可以进行多次回答和评论。一个问题可以有多个回答,而一个回答也可以有多个回答和评论。
3-3 你们为什么用Mongo, 而不用MySQL存储问题和评论
我们选择使用MongoDB作为问题和评论的存储介质,主要有以下几个原因:
1.MongoDB是一种适合存储海量数据的文档数据库,它通常用于存储非关键性数据或者对数据读取速度要求较高的场景。由于MongoDB的特点是数据结构灵活、水平扩展性好、高性能等,因此通常用于存储价值相对较低但需要大量处理的数据,例如社交媒体上的评论、新闻文章、日志等。相比于传统的关系型数据库,2.MongoDB更适合处理大量非结构化或者半结构化数据,这些数据虽然没有高度的关联性,但仍然有很高的价值,可以通过分析和挖掘来获取有用的信息。
以上就是我们为什么用Mongo, 而不用MySQL