Views und Relations (Beziehungen)


Bisher war mir nicht genau klar, was die Option Relations (Beziehungen) eigentlich genau macht, da ich es auch nie wirklich gebraucht habe, aber irgendeinmal da braucht man es einfach. Nun, was macht Relations eigentlich?

Kurz gesagt, es macht einfach einen Join. Was ist ein Join 😉 ? Sagen wir mal wir gehen nach folgenden Schritten vor:

  1. Neue View erstellen. Als Viewtyp wählen wir "Node" aus. Das sagt soviel, dass die Tabelle node als Grundlage genommen wird. Wird der Viewtype Users gewählt, so würde die users Tabelle als Grundlage dienen.
  2. Wir erstellen ganz normal eine View, fügen das Feld name und Datum hinzu und vielleicht noch einen Filter. Soweit so gut. Es funktioniert alles.
  3. Die Views listet alle Dateien auf. Was jedoch wenn diese Dateien von verschiedenen Benutzern verändert werden können. Es würde nicht viel Sinn machen, wenn wir immer den original Benutzer auflisten würden. Es würde viel mehr Sinn machen, wenn dazu der Name des Benutzers, welcher die Revision erstellt hat, angezeigt werden wird. Aber wie?? -> Beziehungen!
  4. Die Information welche dazu benötigt wird, befindet sich in der Tabelle node_revisions. Über Beziehungen sagen wir jetzt also, dass er nicht nur die Tabelle node, sondern auch noch die Tabelle node_revisions als Informationsquelle anzapfen soll. Schwups die Wups und schon ist es nicht mehr der Name des Ursprünglichen Autors, sondern der Name des Revisionserstellers. Die uid, welche in der node_revisions abgelegt ist, überschreibt also die uid aus der node Tabelle für diese Ausgabe.

Ist eigentlich ziemlich einfach. Einige Joins sind z.T. bereits vorhanden, eben, dass man vom node auf die Benutzerinformationen zugreiffen kann. Aber für komplexere Sachen braucht man dann eben die Beziehungen.

Hoffe, es hilft mal jemandem.