Strapi之表设计(中) | 青训营笔记

683 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天

在青训营的项目中,我们需要使用Strapi来作为CMS内容管理。其中最重要的内容就是表设计。其他内容都是相对简单的。本文主要介绍相关表字段。 前言 目前Strapi4更新较快,网络存在的中文教程较少,且缺少较为系统的教程文章。因此,本文旨在系统的介绍一些Strapi表设计的重点内容。 Strapi Strapi支持多种数据库:MonogoDB、SQLite、MySQL等。但是Strapi对于所有数据库都提供了统一的服务体验,抹平了各个数据库的差异,真正做到了降低后端和数据库开发门槛。可以说,Strapi非常适合大前端开发者使用。

重要字段

Relation

“关系”字段允许与另一个表中某些字段(内容类型)建立关系,该内容类型必须是集合类型。 有六种不同类型的关系:

  • 单向: 内容类型 A * 属于一个 * 内容类型 B
  • 一对一: 内容类型 A * 拥有并属于一个 * 内容类型 B
  • 一对多: 内容类型 A * 属于许多 * 内容类型 B
  • 多对一: 内容类型 B * 有许多 * 内容类型 A
  • 多对多: 内容类型 A * 拥有并属于 many * 内容类型 B
  • 多种方式: 内容类型 A * 有许多 * 内容类型 B

配置关系字段的基本设置包括选择建立关系的现有内容类型和关系的类型。“关系”字段的“版本”窗口显示2个灰色框,每个灰色框表示相关的内容类型之一。灰色框之间显示所有可能的关系类型。点击第二个灰色方框来定义内容类型 B。它必须是一个已经创建的集合类型。 单击表示内容类型之间建立关系的图标。选择 content-type A 的 Field name,即将用于 content-type A 中的字段的名称。(如果关系类型禁用,则为可选)选择内容类型 B 的字段名。

在实际使用时,可以在api增加populate=*,即可获取关联的数据内容。当然,如果关系是第六种多种方式的关系,不能反向获取。

实例

譬如,我们这里有两张表:作者表和文章表。我们知道作者表和文章表是存在一个一对多的关系的。

6B.png

Components

组件是几个字段的组合。组件允许创建可重用的字段集,这些字段可以快速地添加到内容类型、动态区域中,也可以嵌套到其他组件中。 当通过 Content-type Builder 配置组件时,可以通过单击 Create a new Component (参见创建一个新组件)来创建一个新组件,或单击“使用现有组件”来使用现有组件。 相关设置:

  • 仅使用现有组件时-从下拉列表中选择一个现有组件。
  • 在可重复组件中选择能够多次使用该组件的内容类型,或者在单个组件中选择仅限于一次使用该组件。

简单理解,这个就是对常规字段的封装。

Dynamic zones

动态区域是可以添加到内容类型的组件的组合。它们允许灵活的内容结构,就像在 Content Manager 中一样,管理员可以选择如何组合和重新安排动态区域的组件。在配置动态区域的设置之后,还必须配置其组件。可以选择现有组件或创建新组件。

使用动态区域时,不同组件不能具有具有不同类型(或具有枚举字段、不同值)的相同字段名。

简单理解,这个就是对组件的封装。