发表于: 2021-02-23 23:41:40

1 1165


今天完成的事情:
继续学习spring-AOP
完成深度思考


明天计划的事情:
完善代码


遇到的问题:
使用阿里巴巴IDEA插件,出现好多警告,明天解决吧



收获:
11.为什么要先写单元测试?单元测试应该包括哪些?在正式打包的过程中,什么样的单元测试应该被屏蔽?在Maven里用什么方法可以跳过单元测试,单元测试应该被跳过吗。
先写单元测试,可以直接测试,找出问题。而不是直接拖到写完接口,运行报错,这个时候错误就和很多相关的。所以写单元测试的目的是为了先检测数据的增删改查的是否正确。
对数据库涉及增删改的应该被跳过
Maven 跳过单元测试打包的方法:
修改 pom 文件
<build>
    <plugins>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <version>2.18.1<ersion>
        <configuration>
           <skipTests>true<Tests>
        </configuration>
      <ugin>
    <ugins>
<ild>
使用命令行
mvn package -Dmaven.test.skip=true  


12.为什么提供假数据的时候要求,直接Controller接收请求,在JSP中写死数据返回以用做假数据?为什么提供假数据的时候要求数据完整,有分页尽可能给分页,数据尽可能真实?
没有在JSP中写死假数据过。
假数据的目的是返回给前端使用,jsp写死假数据的话, 无论代码怎么变,前端可以一直获取假数据
假数据目的是模拟真实的数据传输情况,所以数据应该尽可能的真实。


13.为什么要写假数据,前后端联调的时候,应该什么时候商定接口文档,接口文档应该谁来维护,如果不提供假数据,会发生什么问题?
前端动态页面的开发需要依赖于后端提供的数据,项目开发初期商定,前后端一起维护,不提供假数据,前端无法进一步开发,影响开发进度.


14.接口应该怎么定义?一个页面应该只对应一个接口吗?还是一个实体对应一个接口,让前端去组装数据?两者的使用场景是什么?
根据接口文档来,一个页面可以对应多个接口,一个页面对应一个接口话,那早就被市场淘汰了。一个实体类也可以对应多个接口。看业务的复杂程度吧

15.多层分类应该怎么设计表结构,分别有什么问题?像文章分类这种需求,如果分类不确定,级别不确定,有可能动态调整,数据量和访问量又比较大,该怎么去设计?
加上一个父级id就可以了,主要是在service层来解决这个问题,通过业务代码来实现无限层级

16.什么是实体表,什么是关系表,一对多和多对多应该怎么设计表?
实体表即对应实体类,可以被实例化。关系表即存储表之间的关联、映射,不被实例化。
一对多:一张表就够了,比如一个学校里有多个学生
一对一:一个人只有一个身份证号码
多对一:多个学生在同一个班级,这时可以加一张关系表,更简单的是学生表加一个班级字段。
多对多:一个班级有多个学生,每个学生都可以选择多个课程。可以拆分为多个映射表。

17.什么是外键,用处是什么,为什么不建议使用外键做关联?
外键是数据表中的约束
假设有一个A表,一个B表,B表从属A。
那把A表的主键,放到B表的表格内,A和B表就通过外键关联了。
它使得AB表之中的数据始终完整。
(在数据库层面给AB两表建立了联系,也称物理外键)
外键的作用:

保证数据的完整性和一致性(对AB表的任何  插入,修改删除等操作  都得判断主外键)
级联操作方便(级联删除, 修改A表主键值  B也跟着改)
将数据完整性判断托付给了数据库完成,减少了程序的代码量
外键的缺点:
1.性能问题(往A表插入数据还得查询B表,增加查询过程,也加大了数据库的性能消耗)
2.扩展性问题(如果修改业务,还要在数据库中修改表之间外键关系,如果牵扯很多表的话,会更麻烦)
3.并发问题(在使用外键的情况下,每次修改A表数据都需要去B表检查数据,需要获取额外的锁。若是在高并发大流量事务场景,使用外键更容易造成死锁。)
尽量多使用逻辑外键,数据库中不设置外键,只有在sql语句中才对A B表建立逻辑外键关系。 如果要更改业务,不用动数据库,更改sql语句即可。


18.什么是数据库范式,是否应该严格遵守范式,什么情况下应该不遵守范式?
数据库范式之前看过的,没看太懂。
在知乎搜一下,稍微懂了一点
如何理解关系型数据库的常见设计范式? - 刘慰的回答 - 知乎 https://www.zhihu.com/question/24696366/answer/29189700
数据库的三大范式,将每个表都拆的非常细分,目的是为了消除重复数据,减少数据冗余,让数据库内的数据更好的组织,让磁盘空间得到更有效的利用。
范式,是用来学习参考的,设计的时候根据业务情况,未必一定要遵守,切记。



返回列表 返回列表
评论

    分享到