Drupalに大量のコンテンツを格納するためにノードと用語のどちらを使用するかについては、私が議論しています。
Drupal 8/9のノードと用語の間には多くの類似点があります:
彼らはとても似ているようです。では、用語とノードの違いは何ですか?
nodeとtaxonomy_terms(用語)はコンテンツエンティティタイプなので、どちらもコンテンツの保存に使用されますが、セマンティックな視点を形成します。
node(Content):base fieldsおよび関連するエンティティはその目的のために意図されているため、コンテンツを格納するために使用されますex:
taxonomy_terms(Classification):を格納するために使用されますclassifications(同じグループ内で同じプロパティを共有するコンテンツのグループ化)base fieldsその目的のために意図されていますex:
そのため、ノードを使用して、コンテンツと分類法の条件を保存し、証拠を保存する必要があります。
大量のコンテンツをノードとして保存する場合、大きなパフォーマンスの問題が発生します。たとえば、何千ものツイートを消費し、それらをノードとして保存するWebサービスがあると、次の理由により大きなパフォーマンスの問題が発生します。
ノードを取得したい場合は、長いデータベースクエリの旅が行われます。
また、サイトに複数のノードバンドル(記事、ページ、ニュース)が存在するため、別のパフォーマンスの問題があります。データを読み取るためにDBに対して実行されるex(ツイート)各SQLクエリは、これらすべてのバンドルインスタンスをループします。 (記事、ページ、ニュース)ツイートを取得する前に。
大量のコンテンツがある場合の最適なソリューション:
バンドルのないエンティティタイプを作成すると、このプロパティを維持できるため、ノードの編集能力を失わずにデータを高速で取得できます。
注:Drupal console、using:generate:entity:content then with you do want this(content )バンドルを持つエンティティ?(はい/いいえ)[いいえ]:>いいえ
ノードはコンテンツです。用語はコンテンツの分類のためのものであり、それ自体がコンテンツではありません。
用語は分類法の一部です。分類法は分類の科学です。
ノードと分類用語の関係は、ノードを分類するためにノードに分類用語を添付することです。したがって、ブログノードがある場合、トピックまたはタグがあり、それらはブログノードにアタッチされます。これを使用して、特定のカテゴリのすべてのブログを検索したり、特定の用語でタグ付けしたりできます。一般的なSNSサイトのハッシュタグは、分類用語のようなものと考えることができます。ハッシュタグをクリックすると、そのハッシュタグが付いたすべての投稿を表示できます。ハッシュタグは基本的に投稿を分類します。
ノードと用語が技術的な実装を共有するいくつかの方法をリストアップしました(改訂があるなど)。ただし、使用方法はまったく異なります。
これまでに用語とノードの間で識別した違いは次のとおりです。
階層(ツリー)構造
改訂
編集ページでのメニューのサポート
オーサリング情報+プロモーションオプション