【问题标题】:Should I create a reference field or a third content type to represent a many-to-many relationship in Drupal 8?我应该创建一个引用字段还是第三种内容类型来表示 Drupal 8 中的多对多关系?
【发布时间】:2018-09-18 03:41:39
【问题描述】:

我有一个学生表和一个课程表,它们是多对多关系的(一个学生可以选修很多课程,一个课程可以被很多学生选修)。

如果我将上述数据模型实现为数据库,我将创建第三个表来表示多对多关系。

但我想在 Drupal 8 中实现上述数据模型。我认为在 Drupal 8 中实现上述数据模型有两种方式:

  • 我可以在两种内容类型之一中创建参考字段 (学生或课程)指向其他内容类型。
  • 我可以创建具有两个引用字段的第三种内容类型 指向学生和课程内容类型。

我是否正确,这两种方法是有效的?如果我是正确的,我应该选择哪一个?

【问题讨论】:

    标签: database drupal drupal-8


    【解决方案1】:

    我认为你是对的,我会建议两种方式。

    只要他们的连接没有任何附加参数(例如订阅日期等),我会在学生的内容类型中选择实体引用。

    【讨论】:

      【解决方案2】:

      这两个都是有效的,并且还有一个额外的选项,即在您的每种内容类型上都有一个相应的参考字段。

      最好的选择归根结底是保持编辑的能力。

      根据@c1u31355,如果有额外的“连接”元数据,那么第三种内容类型就是要走的路(或者可能是一个段落)。

      如果是直接连接 A B,并且您只想在一个地方引用,那么请问自己在哪里添加该数据最方便?创建课程然后链接到 30 名学生是否更容易,或者您想在创建学生时向他们添加课程?创建速度更快,但更难维护。

      无论哪种方式,按照我在您的其他问题之一中的建议使用 IEF 都会有所帮助。

      最后的想法是,除非您很好地控制领域,否则拥有第三种内容类型可能会导致各种问题,例如将其限制为只有一个学生拥有一堆课程,反之亦然,在这种情况下需要维护只需将引用字段放在您已将字段限制为一个值的内容类型上会更容易。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-13
        • 2013-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多