1.你们的项目是如何进行参数校验的
@Null 可以标注在任意类型元素上,被标注的元素必须为null
@NotNull 可以标注在任意类型元素上,被标注的元素必须不能为null,但是可以为空串
@NotBlank 可以标注在字符串类型上,被标注的元素不能为null,也不能为空串
@NotEmpty 可以标注在字符串、集合、数组、map类型上 被标注的元素值不为null,也不能为空集合或者空串
@Min(value) 被标注的元素必须是一个数字,其值必须大于等于指定的最小值,对于null无效
@Max(value) 被标注的元素必须是一个数字,其值必须小于等于指定的最大值,对于null无效
@Range(min=,max=) 被标注的字符串的大小必须在指定的范围内,对于null无效
@Digits(integer = 3,fraction = 2) 验证数值的精度
@Size(min=,max) 可以标注在字符串、数组、集合、map上,用于控制数组等长度
@Length(min=,max=) 可以标注在字符串上,被标注的字符串的大小必须在指定的范围内
2 详细说一下你们的问答系统用到了几张表,表中的主要字段有哪些,表关系是什么
问题表(interaction_question)
-
- id: 问题的唯一标识
- title: 问题标题
- description: 问题描述
- user_id: 提问者的用户ID
- course_id: 问题所属课程的ID
- create_time: 问题创建时间
回答表(interaction_reply)
-
- id: 回答的唯一标识
- question_id: 对应问题的ID
- user_id: 回答者的用户ID
- content: 回答内容
- create_time: 回答创建时间
用户表(user)
-
- user_id: 用户的唯一标识
- username: 用户名
- email: 电子邮箱
- create_time: 用户创建时间
- 表关系:
-
问题表与回答表是一对多的关系,一个问题可以有多个回答,但一个回答只能对应一个问题。
- 回答表中的user_id字段与用户表中的user_id字段是一对多的关系,一个用户可以有多个回答,但一个回答只能对应一个用户。
3你们为什么用Mongo, 而不用MySQL存储问题和评论
存入问题和评论使用Mongo,不使用MySQL,Mongo是非关系型数据库,对于问题和评论这种可能包含不固定字段的数据,MongoDB的文档模型更适合存储和查询。此外,MongoDB的横向扩展能力也使得它更适合处理大量的数据和高并发访问。问题和评论的价值相对较低。所以存储问题和评论用Mongo。