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.