管理员:Admin / Administrator
首次安装平台时会包含一个“管理员”角色(启用管理员访问权限)。 所有管理员角色都绕过权限检查,提供对应用程序和 API 中所有数据的无限制访问。 此外,只有启用了管理员选项的角色才能管理应用程序中的设置。
别名:Alias
不直接映射到实际数据库列的 字段 称为“别名”字段。 例如,表示字段(例如分隔符和组)和某些显示存储在其他地方的数据的关系类型(例如 [一对多 (O2M)](/configuration/data-model/relationships#one-to-many- o2m) 和 多对多 (M2M))。
应用程序编程接口 API
该平台提供的应用程序编程接口 (API) 是您如何以编程方式将项目的内容、文件和系统信息连接到外部代码(如网站)或其他第三方服务的方式。
应用:App
用于管理数据库内容的直观无代码应用程序。 由 API 提供支持,模块化和高度可扩展的应用程序是用 Vue.js 编写的。
活动:Activity
活动是平台内发生的所有事件的日志。 用于问责制,每个活动记录跟踪事件类型、用户、时间戳、IP 地址、用户代理和任何相关的修订数据。
集合:Collections
集合是特定类型项目的容器,包含任意数量的字段。每个集合代表数据库中的一个table。默认情况下,title formatter 用于将任何现有的数据库表名称显示为人类可读的集合标题。还有专门用于组织目的的“folder”集合,它们本身不包含任何数据。
可以以适合您项目的任何方式组织集合。您可以针对特定平台构建它们(例如,网站的 pages),或者以更与平台无关的方式(例如,您的业务的原始 customers)。虽然构建数据模型的方式没有对错之分,但我们建议您尽可能保持数据不可知,以便将来更容易重新调整用途。 简而言之,学会将您的数据视为自己的资产——不仅仅是从您当前项目需求的角度来看。
集合的唯一要求是它必须包含 Primary Key 字段。此字段存储一个唯一值,用于在整个数据库/平台中引用集合的项目。
相关指南
仪表盘:Dashboards
Insights 模块中的仪表板将不同的 Panels 组织成一目了然的视图。 它们可用于根据部门、目标、业务流程或您选择的任何内容对数据进行分组。
数据库提取:Database Abstraction
Directus 支持镜像所有最广泛使用的 SQL 数据库,包括 PostgreSQL、MySQL、Microsoft SQL Server、SQLite、OracleDB、MariaDB、CockroachDB 和其他变体。 每个供应商在它们的功能上都有细微的(有时不是那么细微的)差异,因此 Directus 包含一个抽象层,可以帮助它避免为每种类型编写不同的代码。
这意味着未来还有可能支持其他数据存储,例如 MongoDB 等 NoSQL 选项,甚至 Firebase 或 Heroku 等第三方数据服务。 然而,这些选项与我们目前支持的关系SQL数据库 根本 不同,因此需要更多的研究。
内联显示:Displays
显示是 接口 的较小的只读对应项,它定义字段的数据将如何在整个应用程序中内联显示。
例如,您可能有一个“状态”字段,它在项目详细信息页面上使用 Dropdown 界面,当该字段在整个应用程序的其余部分中引用时,您可能有一个较小的 Badge 显示。 Directus 包括许多开箱即用的显示器,以下是一些关键示例:
- Raw — 直接来自 API 的准确值
- Formatted Value - 提供字符串格式化选项
- Boolean - 可定制的真/假图标
- Color - 色样预览
- DateTime - 格式化或相对日期时间
- Image - 缩略图预览
- Labels - 小型定制彩色徽章
- Rating - 可定制的星星
- Related Values - 显示相关显示标题
- User - 系统用户的头像和名称
除了包含的核心显示之外,自定义显示还允许创建新的和/或专有的方式来查看或表示现场数据。例如,您可以创建进度指示器、关系数据的工具提示、特定格式样式或其他任何内容。
相关指南
环境:Environments
环境(例如,dev、staging、prod)作为单独的项目实例进行跟踪。 然后,您可以使用架构/内容迁移来提升它们之间的数据。
扩展:Extensions
该平台已构建为模块化和可扩展的。 这有助于保持核心代码库简单和干净(参见 80/20 规则),同时允许满足所有用例所需的灵活性......无论多么复杂。 有许多不同类型的支持扩展,每一种都提供了一种深度定制、覆盖或扩展核心平台的方法。 了解有关扩展的更多信息。
字段:Fields
字段是集合中的一种特定类型的值,用于存储项目内容的数据。 每个字段代表数据库中的一个column。 例如,articles
Collection 可能有 title
、body
、author
和 date_published
字段。 字段反映其关联列的特征,包括其name
, type
, default
, length
, allow_null
等。
相关指南
文件附件:Files & Assets
正如您可能已经猜到的那样,文件包括图像、视频、PDF、文本文档或其他任何内容。 虽然文件在技术上可以作为代码存储在数据库中,但更常见的是将它们作为“驱动器”上的单独资产进行管理。 该平台支持上传、存储、转换和检索不同类型文件的多种选项,是一款出色的数字资产管理系统。
图标:Icons
扁平化图标
完整的图标列表 可以在这里找到。 Directus 支持 Material 图标的填充和轮廓变体。
社交活动图标
它们是 Font Awesome 5 的品牌图标。 完整的图标列表 可以在这里找到。 将它们用作身份验证提供程序图标之一时,请确保使用下划线,例如 blogger-b 的 blogger_b
图标。
接口:Interfaces
界面决定了您如何查看字段或与字段交互。 在大多数情况下,它们提供了为管理特定类型的数据量身定制的某种输入,但也可以专门用于演示。 示例包括文本输入、切换、所见即所得编辑器、下拉菜单、滑块、图像库等。
除了许多开箱即用的核心界面外,custom 界面还允许创建更多定制或专有选项,例如座位表、二维码或 Stripe 客户信息。
相关指南
项目:Items
项目是集合中的对象,其中包含一个或多个字段的值。 每个集合代表数据库中的一条记录。
项目是项目内容的主要构建块。 类似于电子表格中的“行”,平台内的所有数据都通过这些“原子”数据单元访问。 项目本身相当简单,但它们的真正力量来自当项目相互关联时开始形成的复杂性。
项目通过其唯一的 主键 引用(单独地和相关地)。
相关指南
连接集合:Junction Collections
该平台允许您对不同集合中的项目进行分组。 但通常情况下,将不同集合中的项目“链接”很重要(例如关联 recipes
和 ingredients
)——这称为关系。 有几种不同类型的关系,但只有一些(M2M 和 M2A)需要额外的集合才能正确连接数据。 例如,如果你有一个 recipes
集合和一个 ingredients
集合,你还需要一个 recipe_ingredients
连接集合来连接两者。
布局:Layouts
布局决定了您如何查看集合或与集合交互。在大多数情况下,它们提供了一种基于特定类型数据浏览项目的方法,但也可用于可视化数据或与数据交互。 Directus 包括几个开箱即用的布局选项,每个选项都有不同的功能和配置选项。
- Table - 适用于任何类型的数据,将项目显示为行,将其字段显示为列。
- 卡片 - 非常适合图像数据,此布局将项目显示为图像卡片网格。
- 日历 - 非常适合按日期或日期时间排序的“时间”数据。
- 地图 - 非常适合显示在世界地图上的“地理空间”数据。
除了这些核心布局之外,自定义布局还允许创建更定制或专有的方式来体验应用程序内的数据,例如甘特图、座位图或电子表格。
相关指南
模块:Modules
模块是应用程序中最高和最广泛的组织级别。有几个开箱即用的模块,但您也可以添加自己的模块。
模块栏 列出了所有可用的模块并允许您在它们之间切换。每个模块还控制自己的导航栏,以提供对子页面的定制访问。应用程序中的所有核心功能都可以存储在以下模块之一中:
- Content — 查看数据库内容并与之交互的主要方式
- 用户目录 — 平台系统用户的专用部分
- 文件库 — 平台内上传和管理的所有文件的集合
- Insights — 访问无限可定制的数据仪表板
- 应用指南 — 为平台的概念、指南和参考量身定制的应用内门户
- Settings — 用于配置项目和系统设置的仅限管理员的部分
除了这些核心模块之外,自定义模块还提供了一个“空白画布”,用于在应用程序中创建全新/不同的体验,例如专有仪表板、复合数据集或第三方集成(例如 Stripe Payments 控制台)。
相关指南
多租户:Multitenancy
多租户是一种允许平台管理多个租户(例如客户)的架构。实现多租户主要有两种方式:
- 项目范围 — Directus 9+ 的云原生模型使创建配置新租户项目的超级管理员层变得更加容易。此方法涉及开发可以动态启动/关闭项目的自定义代码,但也是最灵活的,支持范围扩展和差异化项目设置。
- 角色范围 - 在此方法中,您为每个租户创建一个角色,并配置他们的权限以在单个项目中正确地确定它们的范围。此方向允许租户使用 item 范围权限共享单个架构,或使用 collection 范围权限共享不同架构。
面板:Panels
面板是存在于 Insights 模块 中的数据可视化的模块化单元。每个面板都存在于 Dashboard 中,并且可以根据需要进行定位和调整大小。
相关指南
权限:Permissions
权限直接附加到角色,定义用户可以在平台内创建、读取、更新和删除什么。这些基于过滤器的权限极其精细,可控制整个系统的访问。
预设:Presets
预设存储 集合页面 的确切状态。它们用于为用户设置布局默认值,或定义可用于快速调用特定数据集的书签。
相关指南
主键:Primary Key(PK)
当我们试图查看或引用 Collection 中的特定 Item 时,您需要某种唯一标识符才能准确地知道在哪里查看。就像房子的地址一样,主键字段提供了项目在其集合中的位置。出于这个原因,每个集合都必须有一个主键字段,因此它们在您创建集合时进行配置。您可以使用不同类型的标识符,但该字段通常称为“id”。
项目:Projects
项目是平台的完整实例。每个项目代表一个数据库,但也封装了一个配置文件、资产存储和任何自定义扩展。项目是 Directus 中最高级别的组织。
关系:Relationships
该平台允许您对不同集合中的项目进行分组。但很多时候,跨不同集合“链接”项目(例如关联“食谱”和“成分”)很重要——这被称为关系,是任何 关系型 数据库中的关键概念。有几种不同类型的关系,每一种都有特定的目的。 了解有关关系的更多信息。
修订:Revisions
每当更新项目时都会创建修订。跟踪这些替代版本,以便可以恢复以前的状态。对 Directus 中的项目所做的每项更改都存储为完整的版本化快照和所做的一组特定更改(增量)。修订系统与活动日志系统紧密耦合,每个修订都链接到创建它的活动事件。
角色:Roles
角色定义了一组特定的访问权限,并且是平台内用户的主要组织结构。您可以创建无限数量的角色,因此以最合适的方式组织您的用户。
在安装过程中,Directus 会自动创建一个“管理员”角色,用于为初始管理员用户提供完整的平台访问权限。然而,这只是一个 normal 角色,因此它仍然可以更新、重命名甚至删除。请记住,您的项目必须始终保持至少一个具有管理员访问权限的角色。
还有一个“公共”角色确定未经身份验证的访问权限。
相关指南
Singleton
- Directus - 仅包含一个项目的集合
- 设计模式 - 可以实例化一次并且可以全局访问的类。 这个单一实例可以在我们的应用程序中共享,这使得单例非常适合管理应用程序中的全局状态。
云存储:Storage Adapters
存储适配器允许将项目文件存储在不同的位置或服务中。默认情况下,Directus 包含以下驱动程序:
- Local Filesystem - 默认值,任何文件系统位置或网络附加存储
- S3 or Equivalent — 包括 AWS S3、DigitalOcean Spaces、阿里巴巴 OSS 等
- Google Cloud Storage — Google Cloud Platform 上的 RESTful Web 服务
- Azure Blob Storage - Azure 存储帐户容器
标题格式化:Title Formatter
特殊大小写——如果你想更新一个单词的特定大小写(大写/小写)(例如,Dna
到 DNA
),你需要将边缘大小写添加到 格式标题包。如果您认为案例通过了我们的 80/20 规则,您应该向代码库提交 Pull Request,否则您可以在您的实例中更新它.
翻译:Translations
该平台支持其整个管理应用程序的国际化。当前支持许多语言,并且一直在添加更多语言。任何人都可以通过与 CrowdIn 的集成来添加或优化任何语言。
除了应用程序本身是多语言的之外,该平台还允许翻译您的模式。默认情况下,集合和字段名称来自数据库的命名,但您可以用不同的语言覆盖它。
该平台还包括管理多语言内容的不同方式。内置翻译界面支持以任意数量的语言创作内容、并排参考编辑以及混合与语言无关的内容(例如日期或切换)。
类型:Types
“类型”定义了字段内容如何存储在数据库中以及 API 如何返回。通常称为数据类型,这些对于确保以标准化格式保存字段值非常重要。更改字段的类型可能会导致数据丢失,因此在创建字段后类型会锁定在平台内。
数据类型超集
Directus 使用其内置的数据库抽象来正确支持所有不同的 SQL 供应商。但是,这些供应商不共享对相同数据类型的支持,而是每个 SQL 供应商维护自己的列表。为了标准化所有这些差异,Directus 有一个映射到特定于供应商的类型的_superset_。
- String — 一组较短的字符,具有可配置的最大长度
- Text - 一组更长的字符,没有真实世界的最大长度
- Boolean - True 或 False 值
- Binary — 二进制文件的数据
- Integer — 没有小数点的数字
- Big Integer — 没有小数点的较大数字
- Float - 带有浮点小数点的不太精确的数字
- Decimal - 财务中经常使用的更高精度、精确的十进制数
- Timestamp — 以 ISO 8601 格式保存的日期、时间和时区
- DateTime — 以数据库供应商格式保存的日期和时间
- Date — 以数据库供应商格式保存的日期
- Time — 以数据库供应商格式保存的时间
- JSON — 嵌套在 JavaScript 对象表示法中的值
- CSV — 逗号分隔值,以字符串数组形式返回
- UUID — 以 UUIDv4 格式保存的通用唯一标识符
- Hash — 使用 argon2 加密散列算法散列的字符串
- Alias - 对于没有数据库列的字段 了解更多
对于 SQLite,Timestamp 类型存储为 DateTime。
用户:Users
需要活动用户才能访问项目。 每个用户都被分配到一个角色 来确定他们有权查看和执行的操作。 这意味着用户的体验可能会根据其角色的权限而有很大差异。