どのテーブルにコンテンツタイプフィールドが格納されていますか?


7

drupal 8にコンテンツタイプがあり、どのテーブルにコンテンツタイプフィールドとdrupal 8のタイプが格納されていますか?Unlike in drupal 6(コンテンツタイプ専用のテーブルがあります)content_type_contenttypenameテーブルとフィールドを作成しないように。これらのフィールドとデータ型はdrupal 8のどこに保存されますか?

回答:


12

Drupal 8:

  • コンテンツタイプ=バンドル
  • ノード=エンティティ

  • 基本フィールドは1つのテーブルにあります。 [entity]_field_data

  • バンドルフィールドは別のテーブルにあります。 [entity]__field_name

バンドルフィールドは、1つのエンティティのすべてのバンドルについて同じテーブルに格納され、同じエンティティのバンドル間で共有できますが、別のエンティティとは共有できません。


私はbundleフィールドテーブルのその列が実際に何のためにあるのかを理解しようとしています、ご存知ですか エンティティIDが一意であり、ノードが持つことができるバンドルは1つだけであることを考えると、便利になるものを思いつくのに苦労しています。説明には、フィールドが削除されたときに使用されると記載されていますが、それも私には意味がありません...
Clive

3
バンドルはインデックスキーであるため、おそらくコンテンツをより早く見つけるためです。たとえば、バンドルを削除したい場合は、テーブル全体を調べる必要があります。
4k4 2016

うん、それでおしまい。乾杯
クライヴ

私はd6-> d8から移行したので、migrate_map_d6_migrate_message_d6_で始まるテーブルがたくさんあります。これについて何か考えはありますか?
KTM

いいえ、d6から移行したことはありません。別の質問をします。
2016

2

各フィールド値は個別のテーブルに格納されます。

フィールドfooの場合、テーブル名はnode__fooになります


コンテンツタイプに固有のテーブルはありませんか?コンテンツタイプの各フィールドには、同じくらい多くのテーブルがありますか?
KTM

はい。これはdrupal 8のバンドル(ノードのコンテンツ)固有のフィールドのデフォルトの動作です
Eyal

@Icecreamsandwich IIRC。適切なフィールドサポートがコア(CCKではなく)に導入されたときにD7で変更されました。フィールドデータにコンテンツタイプテーブルを使用するD6メソッドは壊れやすく、状況が変化するとクエリが壊れてしまいました。これにより、より安定して予測可能になります。
mpdonadio
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.