Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Benutzerhandbuch › Fortgeschrittene › Best Practice - Drupal Sites - Guidelines › Eine neue Seite bauen - Architektur ›

CCK Felder mehrfach verwenden

Eingetragen von rapsli (1500) am 04.03.2010 - 16:49 Uhr

Bei einem CCK Feld besteht die Möglichkeit, dieses mehrfach zu verwenden. Dies hat jedoch Auswirkungen auf die daruntreliegende Datenbankstruktur. Je nach dem, wo die Schwerpunkte einer Seite liegen und was man abbilden will, ist das eine bzw. das andere besser. Daher sollte diese Entscheidung stehts bewusst durchgeführt werden.

Beispiel: Ein Inhaltstyp "image". Dieser besteht aus einem Feld field_fotograph (textfield), field_legende (textfield) und field_image (imagefield). Bei allen Feldern ist die Kardinalität auf 1 gesetzt (sprich nur 1 Wert pro Feld zulässig).

Das Datenbankschema sieht wie folgt aus:

Tabelle content_type_image
----------------------------------------------------------------------------------------------------------
| vid  | nid | field_fotograph_value | field_legende_value | field_image_fid | field_image_list | field_image_data |
----------------------------------------------------------------------------------------------------------

Fazit: Sehr kompakt.
Sobald jetzt aber entweder ein Feld mehrfach verwendet wird, bzw. die Kardinalität > 1 gesetzt wird, dann wird die entsprechende Spalte in eine eigene Tabelle ausgelagert (damit sie auch mehrfach verwendet werden kann):

Tabelle content_type_image
----------------------------------------------------------------------------------------------------
| vid  | nid | field_legende_value | field_image_fid | field_image_list | field_image_data |
----------------------------------------------------------------------------------------------------

Und zusätzlich die Tabelle content_field_fotograph
--------------------------------------------
| vid | nid | delta | field_fotograph_value |
--------------------------------------------

Daraus lassen sich relativ schnell die Vorteile ableiten

Geht es rein um die Performance, dann ist sicher die 1. Variante die schnellere, da kein Join durchgeführt werden muss, um an die Daten zu gelangen. Das Datenmodell bleibt zudem übersichtlicher, da alle Daten zu einem Node in einer Tabelle sind.

Variante 2 hat den Vorteil, dass wenn eine Views gemacht wird, welche auf das gleiche Feld von zwei verschiedenen Nodetypen zugreift, dies ohne weiteres möglich ist. Beispiel: Inhaltstyp A hat ein Feld field_legende_1 und Inhaltstyp B hat ein Feld field_legende_2. Jetzt soll eine tabellarische Views gemacht werden, welche die Legende aller Nodes des Typs A und B auflistet. Einfach so wird das nicht möglich sein, da beide Felder angewählt werden müssen, je nach Typ jedoch immer eines leer ist.
Weiter liegt hier der Vorteil, dass mehrfach verwendete Felder beim Themen Nodetypeübergreifend gleich behandelt werden können. Beispiel: Imagefield Feld, welches in zwei Nodetypen verwendet wird. Es gibt zwei Views, welche die Bilder galeriemässig auflisten. Der Markup wird über ein tpl entsprechend angepasst. Es kann das entsprechende tpl überschrieben werden, welches dann in allen Views genommen wird und muss nicht für beide Felder das gleiche tpl (nur der Name, der anders ist) anlegen.

Fazit

Eine Generalisierung ist nicht möglich, aber eine Faustregel: Falls verschiedene Inhaltstypen aus identischen Feldern bestehen (sowohl thematisch, wie auch strukturell), dann ist definitiv Mehrfachverwendung angesagt. Alle anderen Fälle müssen entsprechend abgewogen werden.

Weiterführende Links
http://groups.drupal.org/node/3069
http://groups.drupal.org/node/17433

‹ Eine neue Seite bauen - Architektur nach oben SEO Bestpractice ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Tag 13 Stunden
  • Hey danke
    vor 2 Tagen 8 Stunden
  • Update: jetzt gibt's ein
    vor 3 Tagen 2 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 12 Stunden
  • Da scheint die Terminologie
    vor 1 Woche 15 Stunden
  • Kannst doch auch alles direkt
    vor 1 Woche 4 Tagen
  • In der entsprechenden View
    vor 1 Woche 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 4 Tagen
  • gelöst
    vor 4 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 12 Gäste online.

DrupalCenter durchsuchen:

Benutzerhandbuch

  • FAQ - Häufig gestellte Fragen.
  • Links & Downloads
  • Über Drupalcenter.de und das deutschsprachige Benutzerhandbuch
  • Über Drupal
  • Einsteiger
  • Fortgeschrittene
    • Best Practice - Drupal Sites - Guidelines
      • Performance Bremsen - eine Übersicht
      • Eine neue Seite bauen - Architektur
        • CCK Felder mehrfach verwenden
        • SEO Bestpractice
      • Performance während der Entwicklung im Griff halten
      • Modulentwicklung - Bestpractices
      • Anhang
    • Die beliebtesten Themes und Module
    • Tutorials & How To's - Tipps & Tricks
  • Entwicklung von Modulen und Themes
  • Drupalcenters Community
  • Drupal 7 Video-Trainings (Deutsch)
  • Drupal-Testumgebung erstellen
  • Drupal 6 Module
  • Drupal 7 Module
  • Drupal Screencasts auf deutsch
  • Archiv

Das Copyright des deutschsprachigen Drupal-Benutzerhandbuches unterliegt den jeweiligen Autoren. Übersetzungen des englischsprachigen Drupal-Benutzerhandbuches unterliegen der Creative Commons License, Attribution-ShareAlike 2.0.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association