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 - 17: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

  • Как войти на сайт 1win и начать играть в онлайн казино и ставки на спорт, простые инструкции для новичков и опытных игроков.
  • Advertising Modul gesucht
  • Mysql Ver 8.0.41 zu MariaDB 10.11.11
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Doppelte Einträge verhindern
  • [abgeschlosen] PHP Composer von Plesk + .bashrc nicht vorhanden
  • Drupal 7 Focal Point – Bild auf Desktop vollständig anzeigen, nur in Responsive zuschneiden
  • ECA validiere Felder mit unlimitierter Eingabe
  • Zugriff auf Webform beschränken/gewähren
  • Drupal 10.4.5 und Bootstrap 3.x.
  • Probleme mit Drupal 10 - HTTP Statuscode 403 (gelöst)
  • View mit mehreren Ansichten, übersteuert nicht
Weiter

Neue Kommentare

  • War Eure Suche erfolgreich?
    vor 7 Stunden 18 Minuten
  • V-Server ..
    vor 1 Woche 17 Stunden
  • ... generelle
    vor 1 Woche 17 Stunden
  • oder..
    vor 2 Wochen 1 Tag
  • Also ich will dich ja nicht
    vor 2 Wochen 2 Tagen
  • nochmal MariaDB vs Mysql
    vor 2 Wochen 2 Tagen
  • Vielen Dank - feedback zu den Videos
    vor 3 Wochen 6 Tagen
  • Falls dieses Thema noch mal
    vor 4 Wochen 2 Tagen
  • Prima, dann schreib bitte
    vor 4 Wochen 3 Tagen
  • Ah perfekt. Es hat an der
    vor 4 Wochen 3 Tagen

Statistik

Beiträge im Forum: 249989
Registrierte User: 20270

Neue User:

  • KeilyLelm
  • CharlestydaY
  • Darrenwem

» Alle User anzeigen

User nach Punkten sortiert:
wla9454
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3855
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 4 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