【发布时间】:2018-09-17 10:00:54
【问题描述】:
如果我正在创建一个数据库并且我有两个具有多对多关系的表,我将创建第三个表来表示这种关系。
但是我应该如何在 Drupal 8 中实现上述数据模型,我应该创建三种内容类型吗?所以我的问题是,Drupal 8 中的内容类型是否与数据库中的表相同,或者它们是否应该以不同的方式使用?
【问题讨论】:
如果我正在创建一个数据库并且我有两个具有多对多关系的表,我将创建第三个表来表示这种关系。
但是我应该如何在 Drupal 8 中实现上述数据模型,我应该创建三种内容类型吗?所以我的问题是,Drupal 8 中的内容类型是否与数据库中的表相同,或者它们是否应该以不同的方式使用?
【问题讨论】:
要在 Drupal 8 中的自定义表中存储数据,您需要定义自定义模式并通过挂钩公开它。这是该过程的Acquia's documentation。这与创建内容类型不同。
内容类型数据存储在由其他内容类型(例如node 和node_revision)共享的多个表中,操作这些表并不容易。
添加内容类型的最快方法是使用 Drupal 8 用户指南第 6 章中Adding a Content Type 中推荐的方法。这允许使用所有标准 GUI 方法来操作数据结构。
【讨论】:
正如以赛亚所说,Drupal 中的内容类型在技术上与数据库中的表不同,因为它们使用许多表。但是!
在你的情况下,如果你有类似表 A 的东西:
- name
- email
- phone
- id
还有第二个表,表 B:
- company
- something else
- etc…
- id
并且正在寻找第三个可能是这样的:
- id
- table A id
- table B id
那么答案是肯定的。
在这种情况下,您将拥有包含姓名、电子邮件、电话字段的内容类型 A,然后是指向包含公司字段的内容类型 B 的实体引用字段。
您可以使用实体引用字段在任何方向进行引用。
您可能还会发现“Is there a way to input the data of multiple content types”很有帮助。
【讨论】: