数据库

1、软件开发生命周期?

  1. 问题定义
  2. 可行性分析
  3. 总体描述
  4. 系统设计
  5. 编码
  6. 调试和测试
  7. 验收与运行
  8. 维护升级到废弃等阶段

2、数据库设计三大范式?

  • 范式:Normal Format,符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度。
  1. 第一范式1NF,数据库表的每一列都是不可分割的原子数据项{原子性};
  2. 第二范式2NF,非关键属性都完全依赖于主键,在1NF的基础上消除非主属性对主码的部分函数依赖{每一列对应一件事};
  3. 第三范式3NF,任何非主属性不依赖于其它非主属性,在2NF基础上消除传递依赖,确保数据表中的每一列数据都和主键直接相关,而不能间接相关。{每一列数据与主键直接相关}。

3、表的公共字段有哪些?

  • 公共字段:每个表中都应该存在的字段,称为公共字段。
    id主键的作用:用来标识数据的唯一性(禁止参与业务逻辑)
    ordernum/sortnum 排序字段 作用:排序(功能)---升序(默认)
    status 状态 作用:0无效 1有效 2...
    version(版本号)
    create_by、update_by
    create_time 当前时间
    update_time 修改时间
    create_user 操作用户
    update_user 更新用户

4、如何设计表

  1. 分析表的关联关系(根据需求)
  2. 草稿设计(几张表、表中的字段)
  3. ER图,理清表与表之间的关系
  4. 建表

5、JAVA编码规范

  • 包名称小写以.点号隔开
  • 类、枚举和接口名称采用首字母大写的驼峰命名法
  • 方法名称采用首字母小写的驼峰命名法
  • 不以_下划线或美元符号$开始
  • 不适用拼音和英文混合的命名方式
  • 常量使用全大写单词以_下划线分隔

6、数据库编码规范

  • 禁用保留字,如 desc、range、match、delayed 等,请参考MySQL官方保留字;
  • 小数类型为decimal,禁止使用float和double;
  • 表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字;
  • 表名不使用复数名词;
  • 表与表关联关系
    • 一对多 外键放在多的一方
    • 一对一 外键放在任意一方
    • 多对多 外键放在第三张表(中间表)

7、 描述PO/DTO的优点

  • PO持久化对象,它跟[持久层](通常是关系型数据库)的数据结构形成一一对应的映射关系;
    • 一个po对象相当于数据库中的一条记录;
  • DTO数据传输对象,主要用于远程调用、不同层之间(通常是view和service之间)等需要大量传输对象的地方。通常遵守Java Bean的规范,拥有getter/setter方法;
    • 减少业务代码在网络上的传输;
    • 保证了数据和程序的安全;
    • 按需放入字段,避免传输整个表的字段,一定程度上提高了安全性;
    • 减少请求次数,大大提高效率。

8、什么是跨域?如何解决?

  • 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
  • 跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制;
    解决方法
  • (1)通过jsonp跨域
    JSONP实现跨域请求的原理简单的说,就是动态创建< script>标签,
    然后利用< script>的src不受同源策略约束来跨域获取数据;
    JSONP由两部分组成:回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数。回调函数的名字一般是在请求中指定的。而数据就是传入回调函数中的JSON数据;
  • (2)使用代理服务器
    使用代理方式跨域更加直接,因为同源限制是浏览器实现的。如果请求不是从浏览器发起的,就不存在跨域问题了;
  • (3)CORS,即跨域资源共享
    需要浏览器和服务器同时支持,目前,所有浏览器都支持该功能。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。重点关注header中的Origin和Access-Control-Allow-Origin两个字段;
    spring mvc4.2版本增加了对cors的支持,通过spring boot可以非常简单的实现跨域访问;
    使用@CrossOrigin注解实现(局部)。
posted @ 2022-09-06 08:10  Rix里克斯  阅读(108)  评论(0)    收藏  举报