实体参考与分类


10

假设我有一个团队,其中有成员。我有一个团队的内容类型,一个个人团队成员的内容类型。假设还有其他关系,例如团队可以属于部门,并且可以将项目分配给个人或团队。

据我了解,有两种方法可以定义这些实体之间的关系-实体引用或使用分类法术语。我什么时候应该使用一种类型而不是另一种类型?最好只选择一种方法,还是混合使用?

在我看来,分类法是最灵活的,因为使用分类法类型来构建树很容易,或者例如,如果在团队中然后我决定要在团队中构建层次结构,功能已经存在(只需拖动分类法术语放入层次结构中),但是如果我使用了实体引用,就无法想到一种简单的方法(添加分类法会导致冗余)。

感觉好像有些东西我在这里不了解,但是我不确定是什么!

任何帮助,将不胜感激。


好的,我在理解上取得了一些进步-实体引用实际上可以是分类术语!因此“ B团队”实际上既可以是“内容类型”(包含描述),又可以是指向“分类法”术语(具有相同名称)的实体引用链接。然后,可以将用户链接到“分类法”术语,而不是内容类型……
James

我想我还没有解决的一件事-在内容类型中有一个分类法术语的字段和链接到分类法术语的实体引用之间有什么区别-后者似乎就像一个附加的层次并发症。
詹姆斯

它们相当可比。出于一致性考虑,我喜欢使用实体引用。
亚历克斯·肖南2015年

但是,如果您使用实体引用,那么仍然存在使用分类法更好的情况吗?因此,例如,如果我们具有组织层次结构,在我看来分类法是一种更好的方法。
詹姆斯

Answers:


21

您在这里谈论的是两种不同的概念。第一个问题与何时要将内容组织到不同类别中,或者是否要在现有内容类型之间建立关系有关。另一个问题是,如果在使用分类法时,最好使用分类法参考字段或实体参考字段。


关于第一个概念

这取决于您的用例。正如您所提到的,分类法非常适合构建层次结构,但是理想情况下,您不应使用分类法来包含实际内容。原因很简单-虽然您可以将字段添加到分类术语中,但是分类中的所有层次结构级别都使用相同的字段。以您属于不同团队的成员为例,这可能会导致问题。如果要存储有关团队或成员的信息,而不仅仅是姓名,例如,如果要存储有关成员的名字,姓氏和传记的信息,并将此字段添加到分类法中,也可以根据团队条件使用。而且,如果您为团队添加了团队描述字段,则这些字段将显示给团队成员。

分级组织相似项目时,最好使用分类法。类似标签,例如:

  • 蔬菜
    • 胡萝卜
    • 土豆
  • 水果
    • 苹果
    • 香蕉

实体引用非常适合在内容类型之间建立关系。例如,当您拥有节点类型“团队”和节点类型“团队成员”时,每个都有自己的字段。或节点类型“歌曲”引用“专辑”,而专辑本身引用“音乐家”。在这方面,实体引用比分类法更灵活,因为它允许更复杂的关系。使用视图时,还可以利用这些关系。以您的示例为例,您可以创建所有团队成员的视图,并使用实体引用建立关系,并且可以显示团队内容类型上的任何字段以及成员节点中的字段。

混合节点引用和分类法字段也是合法的。在您的团队示例中,团队和成员都可以是节点,并通过实体引用相互引用。同时,该部门可能是所有可用部门的分类法。


关于第二个概念

当DO发布D7时,它附带了一个分类法参考字段,以供参考分类法时使用。从那时起,我们就看到了Entity API模块的发布,因此也看到了实体引用模块,并且由于术语和分类法是实体,因此可以像引用其他任何实体一样引用它们。在这一点上,两者的工作原理非常相似,在许多情况下,使用哪一个都无关紧要。但是,仍然有一些贡献的模块提供了字段格式化程序和窗口小部件,它们仅适用于一个或另一个。因此,在很大程度上应该使用分类标准引用还是实体引用,这取决于您是否需要这样的格式化程序。

由于DO将D8中的实体参考字段替换为分类参考字段,因此我更喜欢使用实体参考字段来链接到分类法,而不是分类模块提供的字段。


2
多么美妙的解释!非常感谢你!现在我明白了!
詹姆斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.