飞布产品手册
官网B站Github
V1.0
V1.0
  • 序言
  • 更新日志
  • 产品简介
    • 什么是飞布?
    • 飞布的价值
    • 飞布的优势
    • 应用场景
    • 数据安全
    • 产品案例
  • 快速入门
    • 初识飞布
    • 快速上手
      • 图文版
    • 词汇概览
    • 工作原理
  • 基础-可视化开发
    • 概览
      • CLI
      • 控制台
        • 主功能区
    • 数据源
      • 数据库
        • 数据库连接
          • 高级设置
        • 数据建模
        • 数据预览
      • REST 数据源
      • GraphQL 数据源
      • 消息队列
    • API构建
      • 可视化构建
        • API规范
      • 批量新建
      • HTTP请求流程指令
      • 使用API
      • 实时查询
      • 实时推送
      • 关联查询
      • 数据缓存
      • 常见用例
    • 身份验证
      • 授权码模式
        • 身份验证(废弃)
      • 隐式模式
      • 数据权限控制
    • 身份授权
      • RBAC
        • 授权与访问控制(废弃)
      • 接口权限控制
      • 开放API
    • 文件存储
      • S3配置及使用
      • 文件管理面板
      • 高级配置:profile
  • 进阶-钩子机制
    • 钩子概览
    • 启动钩子
      • Node钩子
      • Golang钩子
      • Python钩子
      • Java钩子
    • OPERATION钩子
    • 身份验证钩子
    • graphql钩子
    • 函数钩子
      • functions(废弃)
      • proxys(废弃)
    • 文件上传钩子
    • 内部调用
  • 使用-部署上线
    • 部署运维
      • 手动部署
        • 流水线部署(废弃)
      • Docker部署
      • 飞布云
    • 接口安全
      • CSRF token 保护
      • 跨域访问
    • 客户端SDK
      • 微信小程序SDK
      • Flutter SDK
      • uniapp SDK
  • 环境准备
    • 文件存储 S3
    • 身份认证 OIDC
    • NodeJs环境
  • 实战案例
    • Fireboom Admin
      • 管理后台-refine(废弃)
    • 实时TODO LIST
    • 语音版ChatGPT
    • AI魔法师实战
    • 阿里低代码引擎
  • 路线图
  • 常见问题
  • 核心概念
    • GraphQL
    • 超图
    • 请求时序图
    • 服务端Operation
  • 二次开发
    • 钩子规范
      • 钩子规范bak
    • 模板规范
    • 自定义模板
    • 其它参考
由 GitBook 提供支持
在本页
  • 控制台打开
  • 模型设计
  • 普通视图
  • 源码视图
  • ER图

这有帮助吗?

在GitHub上编辑
  1. 基础-可视化开发
  2. 数据源
  3. 数据库

数据建模

上一页高级设置下一页数据预览

最后更新于1年前

这有帮助吗?

数据建模用来进行数据库设计,具有完备的数据表设计能力,类似数据库开发工具。它本质上是对Prisma Schema的可视化封装。

该功能为Beta版本,不推荐生产环境使用!!!

你也可以使用Navicat等数据库管理工具进行表结构设计。

控制台打开

1,切换到“数据建模”页签

2,选择数据源,例如todo数据库

模型设计

MongoDB数据库暂不支持模型设计。

普通视图

新增表

  1. 点击数据建模右侧的“+”,双击输入表名

  2. 点击右侧面板顶部的“+”,输入字段名称和类型

  3. 点击字段行后的“?”,设置字段为数组或是否为空

  4. 点击字段行后的“@”,为字段增加描述

  5. 点击顶部的“迁移”按钮,保存修改

删除表

有两个方式可以删除表,一是选中表后,点击顶部的“删除”按钮,二是在左侧列表右击,点击“删除”。

源码视图

源码视图展示prisma schema源文件,同时支持语法提醒和高亮展示,你可以用它实现任意形式的数据建模。

ER图

一对一的关系

一对一(1-1)关系是指最多一个记录可以在关系的两边连接。在下面的示例中,User和Profile:

model User {
  id      Int      @id @default(autoincrement())
  profile Profile?
}

model Profile {
  id     Int  @id @default(autoincrement())
  user   User @relation(fields: [userId], references: [id])
  userId Int  @unique // relation scalar field (used in the `@relation` attribute above)
}

在飞布中可以得到对应的ER图,如下:

在关系型数据库中可以定义多个字段的一对一关联:

model User {
  firstName String
  lastName  String
  profile   Profile?

@@id([firstName, lastName])
}

model Profile {
id            Int    @id @default(autoincrement())
user          User   @relation(fields: [userFirstName, userLastName], references: [firstName, lastName])
userFirstName String // relation scalar field (used in the `@relation` attribute above)
userLastName  String // relation scalar field (used in the `@relation` attribute above)

@@unique([userFirstName, userLastName])
}

在飞布中可以得到对应的ER图,如下:

一对多的关系

一对多(1-n)关系是指关系一侧的一个记录可以连接到另一侧的零或多个记录的关系。在以下示例中,User和Post模型之间有一个一对一的关系:

model User {
  id    Int    @id @default(autoincrement())
  posts Post[]
}

model Post {
  id       Int  @id @default(autoincrement())
  author   User @relation(fields: [authorId], references: [id])
  authorId Int
}

在飞布中可以得到对应的ER图,如下:

在关系型数据库中可以定义多个字段的一对多关联:

model User {
  firstName String
  lastName  String
  post      Post[]

  @@id([firstName, lastName])
}

model Post {
  id              Int    @id @default(autoincrement())
  author          User   @relation(fields: [authorFirstName, authorLastName], references: [firstName, lastName])
  authorFirstName String // relation scalar field (used in the `@relation` attribute above)
  authorLastName  String // relation scalar field (used in the `@relation` attribute above)
}

在飞布中可以得到对应的ER图,如下:

多对多的关系

多对多关系定义了三种模型:

  1. 两个具有多对多关系的模型,如Category和Post

  2. 一个表示关系表的模型,例如基础数据库中的 CategoriesOnPosts(有时也称为JOIN、链接或数据透视表)

在本例中,表示关系表的模型定义了描述Post/Category关系的其他字段-谁分配了类别(assignedBy),以及何时分配了类别(assignedAt):

model Post {
  id         Int                 @id @default(autoincrement())
  title      String
  categories CategoriesOnPosts[]
}

model Category {
  id    Int                 @id @default(autoincrement())
  name  String
  posts CategoriesOnPosts[]
}

model CategoriesOnPosts {
  post       Post     @relation(fields: [postId], references: [id])
  postId     Int // relation scalar field (used in the `@relation` attribute above)
  category   Category @relation(fields: [categoryId], references: [id])
  categoryId Int // relation scalar field (used in the `@relation` attribute above)
  assignedAt DateTime @default(now())
  assignedBy String

  @@id([postId, categoryId])
}

在飞布中可以得到对应的ER图,如下:

3,点击“”切换到数据建模功能页

数据建模支持两种模式:普通视图和源码视图,分别适用于新手开发者和熟悉Prisma的开发者。点击右上角的图标和,可切换两种视图。

点击顶部的“@”,为表增加属性,前往

迁移本质上调用了 prisma db push 命令,该方式不可用于生产环境,详情查看。

参考
prisma文档
Navicat
01功能介绍 如何用飞布设计数据库?
数据建模
源码视图
一对一的关系图
多字段一对一的关系图
一对多的关系图
多字段一对多的关系图
多对多的关系图