1.15第三天

3-1 你们的项目是如何进行参数校验的 
       为了保证数据的正确性和完整性,我们项目是用了Spring的Validation/ˌvælɪˈdeɪʃn/,这是一套基于注解的权限校验框架,在方法参数上添加字段限制,来对接口请求的参数进行后端的校验。

       常见的注解有下面几类:

       一、空值上的检验:

       @Null:可以标注在任意类型元素上,被标注的元素必须为null;

       @NotNull:可以标注在任意类型元素上,被标注的元素必须不能为null,但是可以为空串;

       @NotBlank:可以标注在字符串类型上,被标注的元素不能为null,也不能为空串;

       @NotEmpty:可以标注在字符串,集合,数组或者map类型上,被标注的元素值不能为null,也不能为空集合或者空串。

       二、数值上的校验:

       @Min(value):被标注的元素必须是一个数字,其值必须大于等于指定的最小值,对null无效;

       @Max(value):被标注的元素必须是一个数字,其值必须小于等于指定的最大值,对null无效;

       三、长度上的校验:

       @Size(min=,max=):可以标注在字符串、数组、集合、map上,用于控制数组等长度等等;

       当校验对象中含有对象类型的属性时,需要在对象属性上使用@Valid开启级联校验。

       以上就是我在项目中如何进行参数校验的。
       

     
3-2 详细说一下你们的问答系统用到了几张表,表中的主要字段有哪些,表关系是什么
       我们互动问答系统中涉及到了两个微服务,用到了三张表,分别是学习微服务的问题表和回答评论表、用户微服务的用户表;

       问题表中主要字段有:问题id、问题标题、问题描述、所属课程的id、所属课程章的id、所属课程节的id、提问学员的id、最新的一个回答的id、问题下的回答数;

       回答评论表中的主要字段有:互动问题的回答id,问题id、回复的上级回答id、回答者id、回答内容、回复的目标用户id、回复的目标回复id,评论数量;

       用户表中的主要字段有:用户id、用户名称、用户头像;

       表间关系:

       用户表和问题表是一对多的关系,一个用户对应多个问题,但一个问题对应一个用户。

       用户表和回答评论表也是一对多的关系,一个用户对应多条回答评论,但一个回答评论对应一个用户。

       问题表和回答评论表是一对多的关系,一个问题可以有多条回答评论,但一条回答评论对应一个问题。

       以上就是我对问答系统的涉及表的相关理解。


3-3 你们为什么用Mongo, 而不用MySQL存储问题和评论
       我在项目中之所以用Mongo存储问题和评论,是因为Mongo主要有以下几个特点:

       1、面向集合存储,易于存储对象类型的数据 ;

       2、文件存储格式为BSON(一种 JSON 的扩展);

       3、支持动态查询,支持索引;

       4、支持复制和故障恢复;

       5、可以存储海量数据;

       6、可以用于价值较低的数据;

       问题和评论的数量都较多,而且价值也不是很高,所以选择用MongoDB,而不用MySQL存储问题和评论。
 

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值