前后端交互05 —— 数据库与身份认证(Authentication)

1. 什么是数据库

数据库(database)是用来组织、存储和管理数据的仓

为了方便管理互联网世界中的数据,就有了数据库管理系统的概念(简称:数据库)。用户可以对数据库中的数
据进行新增、查询、更新、删除等操作


常见的数据库及分类
MySQL 数据库(目前使用最广泛、流行度最高的开源免费数据库;Community + Enterprise)  
Oracle 数据库(收费)
SQL Server 数据库(收费)
、Mongodb 数据库(Community + Enterprise)

其中,MySQL、Oracle、SQL Server 属于传统型数据库(又叫做:关系型数据库 或 SQL 数据库),
这三者的设计理念相同,用法比较类似。
而 Mongodb 属于新型数据库(又叫做:非关系型数据库 或 NoSQL 数据库),
它在一定程度上弥补了传统型数据库的缺陷。

2.传统型数据库的数据组织结构

在传统型数据库中,数据的组织结构分为数据库(database)、数据表(table)、数据行(row)、
字段(field 相当于 列)这 4 大部分组成。


在实际项目开发中,一般情况下,每个项目都对应独立的数据库。 
不同的数据,要存储到数据库的不同表中,例如:用户数据存储到 users 表中,图书数据存储到 books 表中。
每个表中具体存储哪些信息,由字段来决定,
例如:我们可以为 users 表设计 id、username、password 这 3 个字段。
表中的行,代表每一条具体的数据。


了解需要安装哪些MySQL相关的软件
对于开发人员来说,只需要安装 MySQL Server 和 MySQL Workbench 这两个软件,就能满足开发的需要了。
MySQL Server:专门用来提供数据存储和服务的软件。
MySQL Workbench:可视化的 MySQL 管理工具,通过它,可以方便的操作存储在 MySQL Server 中的数据

3.MySQL Workbench可视化的 MySQL 管理工具使用

左侧第一个页签 —— 内容左下角 点击进入面板 —— 左侧数据库列表,需要手动切换Schemas标签
Information信息  代码编辑区域  Output 输出区域 


创建数据库 :
点击新建数据库按钮(桶状) —— 填写数据库的名称(不要出现中文空格可以有下划线)my_db_01 
—— 点击Apply按钮,创建数据库


创建数据表:
展开my_db_01 —— Tables —— 右击 —— creat Table —— 
tablename: users —— Comments:描述用户列表信息 ——
DataType 数据类型:
① int 整数
② varchar(length 45 ) 字符串长度
③ tinyint(1) 布尔值
字段的特殊标识:
① PK(Primary Key)主键、唯一标识
② NN(Not Null)值不允许为空
③ UQ(Unique)值唯一
④ AI(Auto Increment)值自动增长

id :用户唯一标识 int正数 NN PK UQ AI
username VARCHAR(45) NN UQ 
password  VARCHAR(45) NN 
status TININT(1) NN 是布尔值,1表示禁用  0 表示正常


向表格中写入数据
在 users 表格右键 —— Select Rows -Limit 1000  —— 写诶数据
id 时自动增长的AI不用填写 status也不用写系统会在apply提交之后自动填充 只需要填写username password


4.使用 SQL 管理数据库

SQL(英文全称:Structured Query Language)是结构化查询语言,专门用来访问和处理数据库的编程语言。能够让
我们以编程的形式,操作数据库里面的数据。
三个关键点:
SQL 是一门数据库编程语言
使用 SQL 语言编写出来的代码,叫做 SQL 语句
SQL 语言只能在关系型数据库中使用(例如 MySQL、Oracle、SQL Server)。非关系型数据库(例如 Mongodb)不支持 SQL 语言


2. SQL 能做什么
① 从数据库中查询数据
② 向数据库中插入新的数据
③ 更新数据库中的数据
④ 从数据库删除数据

SQL 的学习目标
重点掌握如何使用 SQL 从数据表中:
查询数据(select) 、插入数据(insert into) 、更新数据(update) 、删除数据(delete)
额外需要掌握的 4 种 SQL 语法:
where 条件、and 和 or 运算符、order by 排序、count(*) 函数

5.在项目中操作 MySQL

安装操作 MySQL 数据库的第三方模块(mysql) 
通过 mysql 模块连接到 MySQL 数据库
通过 mysql 模块执行 SQL 语句


安装 mysql 模块    npm install mysql
gitee仓库 lib https://gitee.com/xumengxia/lib.git  

6.前后端的身份认证

目前主流的 Web 开发模式有两种,分别是:
基于服务端渲染的传统 Web 开发模式
基于前后端分离的新型 Web 开发模式

1. 服务端渲染的 Web 开发模式
服务端渲染的概念:服务器发送给客户端的 HTML 页面,是在服务器通过字符串的拼接,动态生成的。
因此,客户端不需要使用 Ajax 这样的技术额外请求页面的数据。代码示例如下
优点:
前端耗时少。因为服务器端负责动态生成 HTML 内容,浏览器只需要直接渲染页面即可。尤其是移动端,更省电。
有利于SEO。因为服务器端响应的是完整的 HTML 页面内容,所以爬虫更容易爬取获得信息,更有利于 SEO。
缺点:
占用服务器端资源。即服务器端完成 HTML 页面内容的拼接,如果请求较多,会对服务器造成一定的访问压力。
不利于前后端分离,开发效率低。使用服务器端渲染,则无法进行分工合作,尤其对于前端复杂度高的项目,
不利于项目高效开发


前后端分离的 Web 开发模式
前后端分离的概念:前后端分离的开发模式,依赖于 Ajax 技术的广泛应用。简而言之,前后端分离的 
Web 开发模式,就是后端只负责提供 API 接口,前端使用 Ajax 调用接口的开发模式。

优点:
开发体验好。前端专注于 UI 页面的开发,后端专注于api 的开发,且前端有更多的选择性。
用户体验好。Ajax 技术的广泛应用,极大的提高了用户的体验,可以轻松实现页面的局部刷新。
减轻了服务器端的渲染压力。因为页面最终是在每个用户的浏览器中生成的。
缺点:
不利于 SEO。因为完整的 HTML 页面需要在客户端动态拼接完成,所以爬虫对无法爬取页面的有效信息。(解决方案:利用 Vue、React 等前端框架的 SSR (server side render)技术能够很好的解决 SEO 问题!)


5. 如何选择 Web 开发模式
不谈业务场景而盲目选择使用何种开发模式都是耍流氓。
⚫ 比如企业级网站,主要功能是展示而没有复杂的交互,并且需要良好的 SEO,则这时我们就需要使用服务器端渲染;
⚫ 而类似后台管理项目,交互性比较强,不需要考虑 SEO,那么就可以使用前后端分离的开发模式。
另外,具体使用何种开发模式并不是绝对的,为了同时兼顾了首页的渲染速度和前后端分离的开发效率,一些网站采用了
首屏服务器端渲染 + 其他页面前后端分离的开发模式。

7.什么是身份认证 (Authentication)

身份认证(Authentication)又称“身份验证”、“鉴权”,是指通过一定的手段,完成对用户身份的确认。 
日常生活中的身份认证随处可见,例如:高铁的验票乘车,手机的密码或指纹解锁,支付宝或微信的支付密码等。
在 Web 开发中,也涉及到用户身份的认证,例如:各大网站的手机验证码登录、邮箱密码登录、二维码登录等。

服务端渲染推荐使用 Session 认证机制
前后端分离推荐使用 JWT 认证机制

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值