3-1 你们的项目是如何进行参数校验的
首先,在实体类中定义验证规则,我们在我们的实体类中使用注解来定义字段的验证规则,例如,在实体类的字段上使用:@Notnull,@Size,@Pattern等注解声明字段的验证条件。
其次,当接收到请求参数时,在接收参数前使用@Valid注解,框架会自动执行参数对象的验证,并将验证结果返回给调用方。
最后,在获取验证结果后,我们可以根据需求验证结果进行处理,如果验证失败,我们可以采取相应的处理措施,如返回错误信息给客户端 。如果验证通过,则可以继续处理业务逻辑。
3-2 详细说一下你们的问答系统用到了几张表,表中的主要字段有哪些,表关系是什么
项目中的问答系统涉及到2个微服务,三张表,分别是用户微服务的用户表,学习微服务的问
题表和回答表。
用户表中包含: 用户id,用户名和用户图片等
问题表包含:问题id,问题内容,问题描述,提问人的id,最后一个回复人的id,问题回答数量,以及一些业务相关的字段
回答表包含:回答id,问题id,评论id,回答人的d,回答的内容,回复的目标用户d,回复的目标回复id,回答次数,以及一些业务相关的字段。
这三张表的关系为:一个用户可以提多个问题,也可以回答多个问题,和对一个问题回答多次,一个问题可以有多个回答,一个回答也可以有多个回答及评论。
3-3 你们为什么用Mongo, 而不用MySQL存储问题和评论
我们之所以用Mongo存储问题和评论,是因为有以下几个特点。
1.因为Mongo可以存储大量的数据。
2.Mongo存储的都是价值较低的数据。
问题和评论量较多,且价值相对不高,非常契合Mongo。