web-dev-qa-db-ja.com

エンティティ参照と分類

メンバーのいるチームがあるとします。チーム用のコンテンツタイプと個々のチームメンバー用のコンテンツタイプがあります。他の関係もあるとしましょう。たとえば、チームは部門に所属でき、プロジェクトは個人またはチームに割り当てることができます。

私が理解しているように、これらのエンティティ間の関係を定義するには2つの方法があります。エンティティ参照、または分類用語を使用する方法です。あるタイプを他のタイプよりもいつ使用する必要がありますか? 1つの方法のみを選択するか、それらを混合するのが最善ですか?

分類法タイプを使用してツリーを構築するのが簡単であるため、または、たとえばチーム内でチーム内に階層を構築することを決定した場合、機能はすでにそこにある(単にドラッグするだけなので、分類法が最も柔軟性があるようです)一方、エンティティ参照を使用している場合、これを行う簡単な方法は考えられません(分類法を追加する以外は、冗長になります)。

ここでは分からないことがあるような気がしますが、何なのかわかりません!

任意の助けいただければ幸いです。

10
James

ここでは2つの異なる概念について話しています。最初の質問は、コンテンツをさまざまなカテゴリに整理したい場合や、既存のコンテンツタイプ間の関係を構築したい場合に関連しています。もう1つの質問は、分類法を使用するときに、分類法参照フィールドまたはエンティティ参照フィールドを使用する方がよいかどうかです。


最初のコンセプトについて

ユースケースによって異なります。分類法は、先に述べたように階層を構築するのに最適ですが、理想的には、分類法を使用して実際のコンテンツを含めることはできません。その理由は簡単です。分類用語にフィールドを追加できますが、分類のすべての階層レベルは同じフィールドを使用します。異なるチームに所属するメンバーを例にとると、問題が発生する可能性があります。名前だけでなく、チームまたはメンバーに関する情報を保存する場合、たとえば、メンバーの名、姓、伝記に関する情報を保存し、このフィールドを分類法に追加する場合は、次のようになります。チーム条件でも利用できます。また、チームのチーム説明フィールドを追加すると、それらはチームメンバーに表示されます。

分類法は類似のアイテムを整理する階層的に使用するのに最適です。タグのように、例えば:

  • 野菜
    • にんじん
    • じゃがいも
  • フルーツ
    • Apple
    • バナナ

エンティティ参照は、コンテンツタイプ間の関係の確立に最適です。たとえば、ノードタイプ「チーム」とノードタイプ「チームメンバー」があり、それぞれに独自のフィールドがある場合などです。または、それ自体が「ミュージシャン」を参照する「アルバム」を参照するノードタイプ「曲」。この点で、エンティティ参照は、より複雑な関係を可能にするため、分類法よりも柔軟です。ビューを使用すると、これらの関係を利用することもできます。例として、すべてのチームメンバーのビューを作成し、関係のエンティティ参照を使用して、メンバーノードのフィールドと共にチームコンテンツタイプの任意のフィールドを表示できます。

参照されるノードと分類フィールドの混合も合法です。チームを使用した例では、チームとメンバーの両方がノードになり、エンティティー参照で相互に参照できます。同時に、部門は、使用可能なすべての部門を持つ分類法になる可能性があります。


第二のコンセプトについて

D.O. D7をリリースしました。分類を参照するときに使用する分類参照フィールドが同梱されていました。それ以来、Entity APIモジュールとその結果としてのエンティティ参照モジュールのリリースを見てきました。用語と分類法はエンティティであるため、他のエンティティと同じように参照できます。この時点では、2つは非常によく似ており、多くの場合、どちらを使用してもかまいません。ただし、フィールドフォーマッタとウィジェットを提供するいくつかの提供されたモジュールがまだあり、どちらか一方だけで機能します。したがって、分類参照またはエンティティ参照を使用する必要があるかどうかは、そのようなフォーマッタが必要かどうかに大きく依存します。

D.Oは分類基準参照フィールドをD8のエンティティ参照フィールドに置き換えているため、分類基準モジュールによって提供されるフィールドではなく、エンティティ参照フィールドを使用して分類にリンクすることを好みます。

21
Zuzuesque