项目2

基于token的用户认证机制

HTTP是一种无状态协议,用户通过浏览器访问服务端的每次请求都是相互独立的,服务端无法根据HTTP请求来识别用户

Cookie Session 技术来记录访问者的基本信息

Cookie

储存在用户客户端上的数据

不可跨域名性

if(map.containsKey("ticket")) {

Cookie cookie =newCookie("ticket", map.get("ticket").toString());

cookie.setPath("/");

if(rememberme) {

cookie.setMaxAge(3600*24*5);

}

response.addCookie(cookie);

Session

Session对象储存特定用户会话的属性及配置信息,实现会话保持和跟踪

HTTP是一种无状态协议,用户通过浏览器访问服务端的每次请求都是相互独立的,服务端无法根据HTTP请求来识别用户

项目介绍 ,主要负责数据库表结构的设计

设计表结构是否将常更新的字段与不长更新的字段分离,大字段与小字段分离,经常查询的组合放在一个表中, 是否满足数据库范式,索引应该建立在那一列上,选择哪种引擎,数据大小的选择。


项目2_第1张图片

user  表包含id name password salt head 四个字段 首先满足第一范式 列的原子性,每一列属性都是不可分割的

满足第二范式 ,每个表必须有一个主键 (id为主键)表中所有列必须完全依赖于主键不能依赖于主键的一部分(表中未使用复合主键无此问题)减少数据库冗余

满足第三范式,表中的每一列都直接依赖于主键(id),没有间接依赖与主键

索引的选择因为登录和注册的时候都需按name查询所以在name作为索引

数据大小的选择,salt字段在代码设计是是生成一个RandomUUID截取5个字符所以长度选择5就足够。

innodb的特性  InnoDB是一个健壮的事务型存储引擎尽量选择innodb引擎

表中要增加唯一索引,在网络卡的时候用户会重复点击提交,会向数据库查人重复记录,前段代码可以拦截【唯一索引是最后一道防线了,高并发的时候如果前端,代码,缓存都没有拦截住重复数据这里就会起到关键的作用】

项目2_第2张图片

数据库表结构设计不好会带来很大麻烦,降低性能

分表分库,读写分离,分布式数据库,

你可能感兴趣的:(项目2)