day03

3-1 你们的项目是如何进行参数校验的 

我们的项目中使用Bean Validation框架进行参数校验,主要分为三部分

        首先,在实体类中定义验证规则,我们在我们的实体类中使用注解来定义字段的验证规则。例如,我们可以在实体类的字段上使用@NotNull、@Size、@Pattern等注解来声明字段的验证条件。

       其次,当接收到请求参数时,在接收的参数前使用@Valid注解,框架会自动执行参数对象的验证操作,并将验证结果返回给调用方。

      最后,在获取验证结果后,我们可以根据需求对验证结果进行处理。如果验证失败,我们可以采取相应的处理措施,如返回错误信息给客户端。如果验证通过,则可以继续处理业务逻辑。
 

3-2 详细说一下你们的问答系统用到了几张表,表中的主要字段有哪些,表关系是什么 

         在我们的问答系统中用到了两个微服务,三张数据表,分别为学习微服务(learning)中的问题表和回答或评论表,以及用户微服务的用户表;

         用户表包含了用户的信息,用到的主要字段如用户id、用户名和用户头像url等。

        问题表中主要记录了问题的相关信息,包括问题id、问题内容、问题描述、提问学员id、最后新回答的id、问题回答数量;

        回答表则用于存储回答的内容,包括回答id、问题id、评论id、回答人id、回答的内容、回复的目标用户id、回复的目标回答id、回答次数;

        这三张表之间的关系如下:

  1.  用户表和问题表是一对多的关系,一个用户可以对应多个问题,但一个问题只能对应一个用户;
  2. 用户表和评论表是一对多的关系,一个用户可以对多条回答进行评论,但是一条评论或者回答只能对应一个用户;
  3. 问题表和评论表是一对多的关系,一个问题可以有多条评论,但是一条回答对应一个问题。

3-3 你们为什么用Mongo, 而不用MySQL存储问题和评论

在我们项目中使用MongoDB 作为数据的存储,主要有以下原因:

  1. 灵活的数据模型:MongoDB是一个文档型数据库,支持动态模式,可以存储不同结构的文档,适合存储半结构化数据。

  2. 可扩展性:MongoDB在分布式环境中有较好的可扩展性,支持水平扩展,能够处理大规模的数据和高并发请求。

  3. 处理大数据能力:MongoDB在处理大量非结构化或半结构化数据时具有优势,能够高效地存储和查询大数据集。

  4. 高性能:对于某些查询模式,MongoDB的性能可能会比MySQL更好,特别是在读取大量数据时。

  5. 适合对象导向的应用:对于需要存储复杂对象结构的应用,MongoDB的文档模型更为适合。

  6. 内置复制和故障转移:MongoDB内置了复制和故障转移功能,能够提供高可用性和数据冗余。

        在我们的项目中来说,问题和评论的数据量比较大,且价值性不高,所以使用 MongoDB更合适,而不是使用MySQL来进行数据存储。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值