Wie können vorhandene Felder richtig verwendet werden?

13

Ich bin ein Drupal-Anfänger. Ich bin ein bisschen verwirrt über das Hinzufügen von Feldern zu Inhaltstypen.

Fall 1: Nehmen wir an, wenn ich drei Content-Typen haben Book, Articleund White Paper. Ich habe ein AuthorsVokabular erstellt, das eine Liste aller Autoren enthält.

  1. Soll ich nun für jeden Inhaltstyp ein Feld "Geschrieben von" (Verweis auf Autoren) erstellen oder das Feld für einen Inhaltstyp erstellen und in anderen Inhaltstypen verwenden?

  2. Was sind die Vor- und Nachteile beider Methoden?

  3. Was passiert, wenn ich ein wiederverwendetes Feld aus einem Inhaltstyp lösche? Wird es in allen anderen gelöscht?

Fall 2: Ich habe folgende Inhaltstypen: (mit spezifizierten Feldanforderungen)

+--------------+----------------------+
| Content Type | Field Required       |
+--------------+----------------------+
| Book         | Year of publication  |
+--------------+----------------------+
| Presentation | Date of Presentation |
+--------------+----------------------+
| Article      | Date of Publication  |
+--------------+----------------------+
| Event        | Held On              |
+--------------+----------------------+

Was soll ich machen? Soll ich ein einzelnes Feld für einen Inhaltstyp erstellen und es für alle anderen Inhaltstypen verwenden oder ein Feld für jeden Inhaltstyp erstellen?

Helfen Sie mir, klar zu verstehen, wann und wie vorhandene Felder angemessen wiederverwendet werden können.

Krallen
quelle

Antworten:

8

Soll ich für jeden Inhaltstyp ein Feld "Geschrieben von" (Verweis auf Autoren) erstellen oder das Feld für einen Inhaltstyp erstellen und in anderen Inhaltstypen verwenden?

Wenn Sie die gleichen Informationen für verschiedene Inhaltstypen erfassen müssen, sollten Sie ein einziges Feld verwenden. Ihr "Geschrieben von" -Feld klingt wie der perfekte Fall dafür. Wenn Sie unterschiedliche Vokabeln für Ihre Autoren hatten, sagen Sie "Buchautor", "Artikelautor" usw., möchten (und müssen) Sie separate Felder für jedes verwenden.

Was sind die Vor- und Nachteile beider Methoden?

Ein Vorteil ist, dass Sie alle Inhaltstypen nach einem Feld abfragen können. Wenn Sie also den gesamten Inhalt eines einzelnen Autors oder sogar den gesamten Inhalt aller Autoren anzeigen möchten, können Sie auf einfache Weise eine entsprechende Ansicht erstellen. Aber das ist natürlich nur nützlich, wenn Sie es brauchen. Ich nehme an, der wichtigste Punkt ist, dass der Anwendungsfall des Feldes selbst tatsächlich die relativen Vor- / Nachteile beider Methoden bestimmt.

Wenn Sie ein Feld erstellen, erstellen Sie außerdem zwei Datenbanktabellen (eine für aktuelle Daten, eine für Revisionsdaten). Wir werden sagen, dass es "gemischte" Gefühle darüber gibt, ob diese Speichermethode vom Standpunkt der Leistung aus die beste Idee ist, und manche Leute ziehen es vor, die Anzahl der Tische niedrig zu halten. Wenn Sie ein vorhandenes Feld an einen anderen Inhaltstyp anhängen, wird für alle ein und dieselbe Datenbanktabelle verwendet, sodass dieses Kontrollkästchen aktiviert wird. Auch dies ist jedoch nur sinnvoll, wenn Ihre Daten getrennt werden können.

Was passiert, wenn ich ein wiederverwendetes Feld aus einem Inhaltstyp lösche? Wird es in allen anderen gelöscht?

Das Feld wird erst gelöscht, wenn es von allen Inhaltstypen getrennt wurde. Daten, die zu dem Inhaltstyp gehören, von dem Sie das Feld getrennt haben, werden in eine gelöschte Datentabelle verschoben und während der Cron-Ausführung gelöscht.

Fahren Sie mit Fall 2 fort, und fragen Sie sich Folgendes:

Wenn Sie bedenken, dass Sie für die Instanz desselben Felds für jeden Inhaltstyp unterschiedliche Bezeichnungen haben können, reicht dann ein visueller (oder datengesteuerter) Hinweis aus, um Sie über die Unterschiede zwischen den Daten zu informieren?

Verwenden Sie in diesem Fall ein einzelnes Datumsfeld, um die oben genannten Vorteile zu erzielen. Wenn nicht, ist es für Ihren Datenentwurf sinnvoller, separate Felder zu haben.

Es kommt alles darauf an, was für Ihre spezielle Website angemessen ist, aber hoffentlich gibt Ihnen das oben Gesagte einen Weg nach vorne.

Clive
quelle
Ich habe das nicht verstanden:Keeping in mind that you can have different labels for each content type's instance of the same field, will that give you enough of a visual (or data-led) cue to let you know the differences between the data?
Krallen
4
Ich wollte nur, dass Sie entscheiden können, was Sie mit Ihren Daten anfangen möchten - am Beispiel der Veröffentlichung und des Präsentationsdatums. Ist es für Sie von Bedeutung, wenn diese getrennt werden? Müssen Sie Inhalte basierend auf diesem Datum filtern? Erhalten Sie unerwünschte Ergebnisse, wenn Sie ein einzelnes Feld verwenden und Daten für alle Inhaltstypen abrufen, wenn Sie nach diesem Feld filtern? Das sind die Fragen, die Sie sich stellen müssen. Es ist wirklich ein Datenentwurfsproblem, Drupals Entity / Field-System ist nur die Abstraktionsebene. Wenn Sie dies außerhalb von Drupal entwerfen, würden Sie diese Daten in dieselbe Tabelle einfügen?
Clive