Excpertenfrage zu Inhaltstypen
am 03.06.2007 - 08:34 Uhr in
Man kann ja in Drupal 5.1 neue Inhaltstypen anlegen, Kann man es irgendwie erreichen das man in Auswahlfeldern auf den Feldinhalt eines anderen Inhaltstypes zururückgreift?
Angenommen ich habe den Inhaltstyp Filme. In Filme habe ich ein Textfeld Regiseur und andere.
In einem neuen anderen Inhaltstyp soll dann ebenfalls ein Feld Regiseur rein. Hier soll es abe rein Auswahlfeld sein bei dem man nur die Regiseure wählen kann die unter Filme bislang eingegeben wurden.
Geht sowas, wie? Das würde Drupal richtig flexibel machen!
Zweitens:
Ich werde verschiedene Inhalttypen haben wo immer wieder ein Filmtitel gewählt werden muss. Aber es sollen nur Filmtitel sein die auf unserer Webseite besprochen werden. Wie strukturiere ist das. Filmtitel als Vokabular? Es können sehr viele sein, ca. 400, lassen sich die dann noch übersichtlich auswählen? Und jeder User soll ja Fimktitel ergänzen können, da wäre Vokabular doch wiede rschlecht oder? Filmtitel sollen dann auch in Event Kalender etc. eingetragen (ausgewählt) werden.
Gruß
Maxi
- Anmelden oder Registrieren um Kommentare zu schreiben
Maxi62 wrote:
am 04.06.2007 - 08:11 Uhr
Man kann ja in Drupal 5.1 neue Inhaltstypen anlegen, Kann man es irgendwie erreichen das man in Auswahlfeldern auf den Feldinhalt eines anderen Inhaltstypes zururückgreift?
Kurz: ja.
Mit dem CCK gibt es ein Feld namens Node Reference (oder so ähnlich). Damit kann man von anderen Node Types verweisen lassen. Dafür müsste in deinem Beispiel 'Regisseur' aber ein eigener Node Type sein.
Zu deiner zweiten Frage, auch da hilft CCK weiter. Ich stelle mir das gerade so vor. Du willst Rezensionen über Filme schreiben, also hast du schon einmal zwei Node Type: Rezension und Film. Rezension hat ein Feld Film vom Type Node Referenz auf den Node Type Film. Film wiederum hat ein Feld Regie vom Typ Node Reference auf den Node Type Regissseur.
Das Problem, wenn du diese Angaben zu Pflichtfeldern machst: Wenn du einen Film eintragen willst, muss der Regisseur schon einmal erfasst sein, wenn du eine Rezension schreiben willst, muss der Film schon eingetragen sein.
Soweit alles klar?
Ciao, Q
1. Danke für ausführliche
am 04.06.2007 - 09:28 Uhr
1. Danke für ausführliche Antwort. Ein wenig komme ich derzeit in der Praxis noch mit den Begriffen durcheinander. Wenn Du sagst man solle vorher Regiseur als Node anlegen.
Meinst Du damit das man einen neuen Inhaltstyp anlegt. Muss der Regiseur dann im Titel stehen oder kann es ein Unterfeld dieses neuen Inhaltstyps sein?
2. Und noch was anderes:
Es scheint ja das Drupal in der Tat sehr verzweigte Datenstrukturen ohne SQL-Programmierung erzeugen kann. Zum Einen ist das natürlich sehr schön denn damit wird das CMS wesentlich flexibler als andere CMS.
Das Problem ist nur, das die Datenstrukturen recht verzwickt werden. Wenn man später direkt in die Datenbank rein schaut, dann wird man als Mensch kaum noch die Zusammenhänge erkennen können.
Das hat doch auch einige Nachteile (sehe ich das richtig?):
1. Manuelle SQL Abfragen (in Modulen etc.) werden schwierig da viele Informationen übe rviele Tabellen verteilt sind und Zusammenhang schwierig erkennbar ist
2. Defekte Tabellen können da sganze Gefelcht zerstören und ganez Seite zum erliegen bringen. Das reparieren einer defekten Tabelle (ersetzen durch brauchbare Daten) ist kaum machbar (wegen der Verschachtelungen)
3. Drupal wird mit zunehmender Verschatelungen langsamer und Serverbelastung steigt enorm im Vergleich zu individuellen Webseiten wo die Datenbanken speziell für die Aufgabe zugeschnitten wurden. Es könnte durchaus sein das man Aufgaben, die normalerweise mit 10 Tabellen (in der Datenbank) gut gelöst werden in Drupal dann 50 Tabellen brauchen. Die Verschachtelungen und da shinzufügen von Feldern erhöht ja in Drupal die Tabellen was normalerweise in individuellen Datenbanken nicht der Fall ist.
Somit müsste man das Fazit ziehen das Drupal für größere komplexe Seiten mit vielen Inhaltstypen oder CCK-Feldern nur bedingt geeignet ist, oder?
Gruß Maxi
Maxi62 wrote: Es scheint ja
am 04.06.2007 - 20:39 Uhr
Es scheint ja das Drupal in der Tat sehr verzweigte Datenstrukturen ohne SQL-Programmierung erzeugen kann. Zum Einen ist das natürlich sehr schön denn damit wird das CMS wesentlich flexibler als andere CMS.
Das Problem ist nur, das die Datenstrukturen recht verzwickt werden. Wenn man später direkt in die Datenbank rein schaut, dann wird man als Mensch kaum noch die Zusammenhänge erkennen können.
Wieso verzwickt? Für jeden neuen Inhaltstypen wird genau eine Tabelle mit dem Namen desselben angelegt. Einfacher und übersichtlicher kann man es imho nicht machen.
1. Manuelle SQL Abfragen (in Modulen etc.) werden schwierig da viele Informationen übe rviele Tabellen verteilt sind und Zusammenhang schwierig erkennbar ist
Quatsch. S.o.
3. Drupal wird mit zunehmender Verschatelungen langsamer und Serverbelastung steigt enorm im Vergleich zu individuellen Webseiten wo die Datenbanken speziell für die Aufgabe zugeschnitten wurden. Es könnte durchaus sein das man Aufgaben, die normalerweise mit 10 Tabellen (in der Datenbank) gut gelöst werden in Drupal dann 50 Tabellen brauchen. Die Verschachtelungen und da shinzufügen von Feldern erhöht ja in Drupal die Tabellen was normalerweise in individuellen Datenbanken nicht der Fall ist.
Evtl. verstehe ich Dich auch einfach falsch. Könntest Du das noch was weiter ausführen und möglichst anhand eines konkreten Beispiels ausführen?
Soweit ich es gesehen habe
am 04.06.2007 - 20:48 Uhr
Soweit ich es gesehen habe werden für die meisten CCK Felder zusätzliche Tabellen benötigt und über ID verlinkt. Wenn du nun mehrere verschiede CCK Felder einem Inhaltstyp anfügst entstehen somit sehr viele kleine Tabellen die nur in Verbindung mit den anderen wirklich nützlich sind.
Würde man sowas manuell ohne Drupal programmieren dann würde man das ja mit einer Tabelle lösen. Ich hoffe du verstehst es jetzt.
Maxi62 wrote:
am 04.06.2007 - 20:51 Uhr
Soweit ich es gesehen habe werden für die meisten CCK Felder zusätzliche Tabellen benötigt und über ID verlinkt. Wenn du nun mehrere verschiede CCK Felder einem Inhaltstyp anfügst entstehen somit sehr viele kleine Tabellen die nur in Verbindung mit den anderen wirklich nützlich sind.
Würde man sowas manuell ohne Drupal programmieren dann würde man das ja mit einer Tabelle lösen. Ich hoffe du verstehst es jetzt.
Da hast Du anscheinend was falsches gesehen. Es ist so, wie ich es oben beschrieben habe: Eine Tabelle pro Inhaltstyp, alle hinzugefügten Felder werden in dieser Tabelle gespeichert! :)
Bist du da sicher? Wirklich
am 04.06.2007 - 21:03 Uhr
Bist du da sicher? Wirklich auch alle angefügten CCK ?
Falls das so ist, wären die genannten Nachteile natürlich nicht vorhanden. Ich war mir nicht ganz sicher abe rmeinte das anders gesehen zu haben. Aber kann mich durchaus irren.
Um 100%ig sicher zu sein,
am 04.06.2007 - 21:25 Uhr
Um 100%ig sicher zu sein, habe ich nochmal nachgesehen. Es gibt doch Ausnahmen in denen eine zusätzliche Tabelle angelegt wird. Siehe hier: http://drupal.org/node/133705 unter "CCK Field Location Senarios".
--
bv - drupalcenter.de