type
status
date
slug
summary
tags
category
icon
password
这里写文章的前言:
很多我们看到的项目逻辑都非常简单,纯前端项目,迈向完整商业项目的最重要一环,就是数据库操作~
📝 主旨内容
关于数据库的一些名词解释
需要首先了解一些专业术语
- neon
- supabase
- MySQL
- PostgreSQL
- 关系型数据库/非关系型数据库
- MongoDB
- Redis
- Prisma
- Drizzle
- schema
- API
- 增删改查
- Navicat Premium Lite
数据库服务商/云平台
Neon
- 一个现代化的 PostgreSQL 云数据库平台
- 提供分支功能,可以像 Git 一样管理数据库版本
- 支持无服务器架构,按需扩展
Supabase
- 开源的 Firebase 替代品
- 基于 PostgreSQL,提供实时数据库、认证、存储等功能
- 被称为"开源版 Firebase"
数据库系统
MySQL
- 最流行的开源关系型数据库之一
- 广泛用于 Web 应用开发
- 由 Oracle 公司维护
PostgreSQL
- 功能强大的开源关系型数据库
- 支持复杂查询和高级数据类型
- 被认为是最先进的开源数据库
关系型数据库 vs 非关系型数据库
- 关系型数据库:数据以表格形式存储,有固定的结构(schema),支持 SQL 查询。如 MySQL、PostgreSQL
- 非关系型数据库:数据存储更灵活,包括文档型、键值型、图形型等。如 MongoDB、Redis
MongoDB
- 文档型 NoSQL 数据库
- 以 JSON 格式存储数据
- 适合快速开发和处理非结构化数据
Redis
- 内存型键值数据库
- 主要用于缓存和会话存储
- 速度极快,但数据存储在内存中
数据库工具和框架
Prisma
- 现代化的数据库 ORM(对象关系映射)工具
- 提供类型安全的数据库访问
- 支持多种数据库,有强大的开发者体验
Drizzle
- 轻量级的 TypeScript ORM
- 注重性能和类型安全
- 比 Prisma 更接近原生 SQL
Schema
- 数据库的结构定义
- 包括表结构、字段类型、约束条件等
- 相当于数据库的"蓝图"
核心概念
API(Application Programming Interface)
- 应用程序编程接口
- 允许不同软件之间进行通信的桥梁
- 在数据库上下文中,通常指访问数据库的接口
增删改查(CRUD)
- 增:Create(创建/插入数据)
- 删:Delete(删除数据)
- 改:Update(更新/修改数据)
- 查:Read(读取/查询数据)
- 这是数据库操作的四个基本功能
Navicat Premium Lite
- 数据库管理工具
- 提供图形化界面来管理多种类型的数据库
- 支持 MySQL、PostgreSQL、MongoDB 等
- Lite 版本是免费的简化版
这些术语构成了现代数据库开发的基础知识体系。理解它们有助于你更好地选择合适的数据库技术栈。
Next.js 数据库操作流程层级图
一般需要考虑到这六个层级的事情
📱 前端层 (Frontend Layer)
用户界面 (UI Components)
↓
React 组件状态管理
↓
事件处理 (onClick, onSubmit 等)
🌐 API 层 (API Layer)
Frontend 发起请求
↓
HTTP 请求 (GET/POST/PUT/DELETE)
↓
Next.js API Routes (/pages/api/ 或 /app/api/)
↓
路由处理函数 (handler function)
🔧 业务逻辑层 (Business Logic Layer)
请求验证 & 数据校验
↓
身份认证 & 权限检查
↓
业务规则处理
↓
数据转换 & 格式化
🗂️ 数据访问层 (Data Access Layer)
ORM/查询构建器选择
↓
┌─────────────┬─────────────┬─────────────┐
│ Prisma │ Drizzle │ 直接 SQL │
└─────────────┴─────────────┴─────────────┘
↓
Schema 定义 & 类型生成
↓
查询语句构建
🛠️ 数据库连接层 (Database Connection Layer)
连接池管理
↓
数据库驱动程序
↓
┌─────────────┬─────────────┬─────────────┐
│ PostgreSQL │ MySQL │ MongoDB │
│ Driver │ Driver │ Driver │
└─────────────┴─────────────┴─────────────┘
🏗️ 数据库服务层 (Database Service Layer)
云数据库平台
↓
┌─────────────┬─────────────┬─────────────┐
│ Supabase │ Neon │ PlanetScale │
└─────────────┴─────────────┴─────────────┘
↓
实际数据库引擎
↓
┌─────────────┬─────────────┬─────────────┐
│ PostgreSQL │ MySQL │ MongoDB │
└─────────────┴─────────────┴─────────────┘
🚀 开发流程中的文件修改顺序,需要考虑的层面
📄 .env.local - 配置数据库连接
📄 prisma/schema.prisma - 定义数据模型
📄 lib/prisma.ts - 配置数据库客户端
📄 types/*.ts - 定义 TypeScript 类型
📄 lib/validations.ts - 设置数据验证规则
📄 services/*.ts - 编写业务逻辑
📄 app/api/*/route.ts - 创建 API 端点
📄 hooks/*.ts - 创建数据获取 Hook
📄 components/*.tsx - 构建 UI 组件
📄 app/*/page.tsx - 创建页面组件
📄 package.json (关键依赖)
这个文件结构涵盖了从数据库到用户界面的完整技术栈,每个文件都有明确的职责和作用。
🤗 总结归纳
总结文章的内容
📎 自己部署服务器的流程
- 一些引用
- 引用文章
有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
- Author:Luolink
- URL:https://luolink.com/article/datebase-for-vibecoding
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!