Lazy loaded image
vibecoding中的数据库快速设置
Words 6589Read Time 17 min
2025-9-15
2025-9-14
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安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
上一篇
新开一篇文章记录第一个工具站的思考和执行
下一篇
Vibe Coders的Git:让你的代码无比安全