Skip to content

大家好,我是村长!

本节课主要关注服务端开发相关知识,这主要是为接下来的项目篇做准备。

Nuxt 是全栈框架,给我们准备了丰富的服务端开发特性,旨在让大家能够通过一套方案就能完成全栈开发任务。但是有不少小伙伴是纯前端出身,对服务端一些知识有欠缺,例如数据库、接口设计开发等不是很熟悉,所以,我们本节课计划完成如下学习任务:

  • 掌握 MySQL 数据库开发和设计基础;
  • 掌握基于 APIFox 的接口设计流程和方法;
  • 掌握 Node.js ORM 方案 Prisma。

下面,我们先从数据库环境准备开始,将会包括如下内容:

  • 数据库分类和选择;

  • 安装数据库和管理工具。

数据库分类和选择

在当今的互联网中,最常见的数据库模型主要是两种,即 关系型数据库非关系型数据库:

  • 关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。

  • NoSQL,泛指非关系型的数据库。随着互联网 Web2.0 网站的兴起,传统的关系数据库在应付 Web2.0 网站,特别是超大规模和高并发的 SNS 类型的 Web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题。

而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL 数据库在特定的场景下可以发挥出难以想象的高效率和高性能,它是作为对传统关系型数据库的一个有效的补充。

这两类数据库的代表就是 MySQLMongoDB ,那么如何做选择?

作为文档数据库,由于 MongoDB 并不限制用户存储数据的体量和类型,因此适合大数据的应用环境。这对基于云的服务特别有利。

而得益于 MongoDB 的水平可扩展能力,以及与云服务的敏捷性结合,它不但能够减少开发者的工作量,简化业务与项目的扩展流程,还能够提供高可用性和数据的快速恢复。

不过,MongoDB 在数据可靠性、一致性以及安全性等方面,不如 MySQL。此外,当应用程序需要提供多行事务(比如会计和银行系统)时,以 MySQL 为首的关系型数据库提供了高事务处理率。与 MySQL 专注于提供事务的 ACID 和安全性不同的是,MongoDB 更专注于提供高插入率。

因此,我强烈建议大家将 MySQL 用于具有固定数据模式,且不打算在数据的多样性方面进行扩展的项目。因为在确保数据完整性和可靠性的同时,MySQL 不但方便维护,而且成本较低。

相反,MongoDB 是那些正在成长,但数据架构并不固定的业务或项目的最合适选择。因为它允许开发者在无需任何结构的情况下,自由地更新、检索和存储文档,因此它通常适用于内容管理、物联网处理,以及实时分析等项目。

安装数据库和管理工具

利用 docker 安装数据库和管理工具是最简单快捷的方式,而且还可以以同样的方式在服务器上安装。因此我这里用 docker 方式搭建 MySQL 开发环境。

安装 docker

首先去官网下载并安装 Docker Desktop,下载适合自己的版本,比如我下载的是 Mac 版:

启动 Docker Desktop:

通过 docker-compose 安装 MySQL 和 Adminer

Docker 安装好之后,就可以找到合适的镜像安装所需软件,我们这里准备安装 MySQL 数据库和管理端 Adminer。

首先,我们在项目根目录下创建一个 docker-compose.yml 文件,并粘贴如下内容:

yml
    version: '3.7'
    services:
      mysql_db_container:
        image: mysql:latest
        command: --default-authentication-plugin=mysql_native_password
        environment:
          MYSQL_ROOT_PASSWORD: rootpassword  # root账号密码
        ports:
          - 3306:3306
        volumes:
          - mysql_db_data_container:/var/lib/mysql
      adminer_container:
        image: adminer:latest
        environment:
          ADMINER_DEFAULT_SERVER: mysql_db_container
        ports:
          - 8080:8080
    
    volumes:
      mysql_db_data_container:

然后使用 docker-compose 命令拉取镜像,在命令行输入如下命令:

bash
    docker compose up -d

执行结束,效果如下:

现在再看一下 Docker Desktop 的运行状态,MySQL 和 Adminer 顺利启动了:

使用 Adminer

下面就可以通过 Adminer 管理数据库了,浏览器中输入:http://localhost:8080

这里用户名输入:root,密码输入:rootpassword(如果修改了,就输入修改过的密码),效果如下:

注意如果端口不合适,可以在 docker-compose.yml 中修改 ports

点击登录,应该能看到下面的管理界面:

总结

好了,关于数据库开发环境的准备工作就给大家讲到这里。有了 docker 的加持,这些工具的安装配置跟之前比起来变得非常简单。如果大家有更偏爱的管理工具,例如 Navicat 等等,可以不用拉取 Adminer 镜像,单独安装客户端。

下次预告

下一节,我们将使用 Adminer 进行用户管理、数据库创建、数据库表设计等管理任务,帮助大家掌握数据库相关的基础知识,为后续项目开发做准备。

Released under the MIT License.