数据库
1、软件开发生命周期?
- 问题定义
- 可行性分析
- 总体描述
- 系统设计
- 编码
- 调试和测试
- 验收与运行
- 维护升级到废弃等阶段
2、数据库设计三大范式?
- 范式:Normal Format,符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度。
- 第一范式1NF,数据库表的每一列都是不可分割的原子数据项{原子性};
- 第二范式2NF,非关键属性都完全依赖于主键,在1NF的基础上消除非主属性对主码的部分函数依赖{每一列对应一件事};
- 第三范式3NF,任何非主属性不依赖于其它非主属性,在2NF基础上消除传递依赖,确保数据表中的每一列数据都和主键直接相关,而不能间接相关。{每一列数据与主键直接相关}。
3、表的公共字段有哪些?
- 公共字段:每个表中都应该存在的字段,称为公共字段。
id主键的作用:用来标识数据的唯一性(禁止参与业务逻辑)
ordernum/sortnum 排序字段 作用:排序(功能)---升序(默认)
status 状态 作用:0无效 1有效 2...
version(版本号)
create_by、update_by
create_time 当前时间
update_time 修改时间
create_user 操作用户
update_user 更新用户
4、如何设计表
- 分析表的关联关系(根据需求)
- 草稿设计(几张表、表中的字段)
- ER图,理清表与表之间的关系
- 建表
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
注解实现(局部)。
本文作者:Ritchie里其
本文链接:https://www.cnblogs.com/wang-zeyu/p/16659896.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步