[gelöst] Ternäre Relationen

am 09.06.2011 - 21:24 Uhr in
Hallo ihr Lieben
ich bin seit einer halben Ewigkeit auf der Suche nach Umsetzungsmöglichkeiten für n-äre Beziehungen in Drupal. Konkret möchte ich 3-äre Beziehungen zwischen einem Lesungstermin, dem dort vorgestellten Buch und dem lesenden Autor umsetzen. Termin, Buch und Autor sind Inhaltstypen.
Ich weiß, dass das Projekt "Relation" damit befasst ist, aber ich verstehe nicht, wie es verwendet wird. Davon abgesehen ist dieses Projekt noch nicht richtig dokumentiert und scheint auch nicht stabil zu sein.
Mit node references und corresponding node references lassen sich 2-äre Beziehungen reibungslos realisieren.
Gibt es eine ähnlich schöne Lösung für n-äre Beziehungen? Oder müsste ich selbst etwas modulmäßiges basteln?
Vielen Dank im Voraus,
Dinah
P.S.: Für eine Lösung dieses Problems würde ich auch zurück zu D6 gehen, wenn's sein muss...
- Anmelden oder Registrieren um Kommentare zu schreiben
Was ist daran ternär?
am 09.06.2011 - 21:42 Uhr
Ich kan an deiner Aufstellung nichts ternäres finden, vielleicht bin ich ja auch zu blöd.
Grundsätlich hast Du doch einfach nur eine Lesung, bei der 1 Buch von 1 Autor vorgestellt wird. Da gibts dann einfach den Typ Lesung mit 2 Referenz-Feldern. Wo liegt jetzt da das Problem?
Du referenziert im Buch den
am 09.06.2011 - 22:37 Uhr
Du referenziert im Buch den Autor und bei einer Lesung das Buch. Und im Buch ist hinterlegt, welcher Autor. Somit hast du alle Informationen, die du bei der Ausgabe einer Lesung brauchst. Dass das nicht mit drei Klicks erledigt ist, sollte dir klar sein ;-)
Doch ternär?
am 10.06.2011 - 12:11 Uhr
Hallo
erstmal Danke. Ihr habt recht, hier habe ich nicht genügend beschrieben, was ich umsetzen möchte...
Ich müsste zumindest eine lesungs-spezifische Zuordnung zwischen Autor und Buch festhalten können. An einem Termin können beliebig viele Autoren jeweils aus beliebig vielen Büchern lesen. Selbst ein einziges Buch kann von verschiedenen Autoren vorgestellt werden, z.B. von seinem Illustrator und demjenigen, der es geschrieben hat. Beispiele siehe unten.
Nun habe ich aber überlegt, dass es tatsächlich sinnvoll sein könnte, einen Node-Typ "Termin" zu erstellen. Der hätte dann drei references auf Autor, Buch und die eigentliche Lesung. Er entspricht also der dreispaltigen Tabelle mit foreign keys, die ich hier sonst anlegen würde?
Aber wie zeige ich dann auf der Seite eines Buches zu seinen Terminen die Autoren und Lesungen an, auf die ich ja keine direkte reference habe, sondern nur eine über diesen Termin-Typ? 0_o Ich hoffe sehr, ich drücke mich einigermaßen verständlich aus.
Liebe Grüße,
Dinah
Beispiele:
An Lesung 1 nimmt Michael Ende mit Momo teil.
An Lesung 1 nimmt Kinderbuchillustrator Bob mit Momo teil.
An Lesung 1 nimmt Michael Ende mit Die unendliche Geschichte teil.
Mach es so wie ich es
am 10.06.2011 - 12:37 Uhr
Mach es so wie ich es beschrieben habe. Neu ist nur, dass es halt mehrere Autoren gibt ggf. noch andere Mitwirker, die dann bei Content type "Buch" in einem anderen Feld referenziert werden.
Mit D6...
am 10.06.2011 - 12:46 Uhr
Ich wusste ich habe schonmal was in diese Richtung bei Hagen Graf auf Cocoate.com gesehen. Schade nur, dass nicht klar ist, ob das Modul Node Relationships noch weiterentwickelt bzw. auf D7 portiert wird. Aber ich glaube genau in diese Richtung möchtest Du gerne gehen.
Immer noch 3-är
am 10.06.2011 - 18:24 Uhr
Hallo
danke für eure Tipps. Sieht aber gerade trotzdem schlecht aus.
Wenn ich es mache, wie von Tobias beschrieben, gehen mir Informationen verloren. Z.B. wer nicht an einer Lesung teilnimmt, obwohl er am Entstehungsprozess eines Buches beteiligt war, das dort vorgestellt wird.
Relationships klang sehr vielversprechend, hilft aber leider wieder nur für "two way relationships between content types" (siehe http://drupal.org/project/noderelationships), bidirektionale Beziehungen krieg ich aber ja ganz gut hin.
Ich werde hier posten, wenn ich eine Lösung finde. Im Moment bastle ich mit einem content-type lesenBeziehung(Autor,Termin,Buch), aber das Problem ist, dass ich vom Autor aus auf Termine und Bücher zugreifen müsste. Um bei der Anzeige des Autoren einzelne Termine anzuzeigen.
Ich habe schon versucht, eine View zu erstellen, die das übernimmt, aber dafür bin ich definitiv nicht versiert genug, wenn das überhaupt geht. Ich bastele weiter...
Beste Grüße,
Dinah
Kettenreferenzen, n-äre Relationen, Glücklichsein
am 15.06.2011 - 12:19 Uhr
Hallihallo
ich melde von der References-Front: es hat geklappt. Vielleicht gibt es ein besseres Prinzip, auf jeden Fall soll man ja demnächst das Modul Relation verwenden können. Aber dieses hier funktioniert schon einmal und scheint mir auch Sinn zu machen. Es hat darüber hinaus den Vorteil, dass man keine APIs verstehen und keinen Code eingeben muss, man muss bloß hoffen, dass zwei Module dabeibleiben: views und corresponding node references (cnr). Hier das Prinzip:
Nun war das auch der Plan, den ich aber nicht umsetzen konnte, einfach, weil keiner mir Views erklären konnte (also das alte Problem). Bis ich folgendes Video aufgespürt habe: Views, habe ich glaube das halbe Web abgesucht und nie, nie, nie verstanden, wie man Views Relationships wirklich gebrauchen kann. Aber obiges Video - tiefe Verbeugung vor drewish - hat mir das einfache, ordentliche und verständliche Grundprinzip einleuchtend erklärt. Jetzt bin ich glücklich :)
Danke euch trotzdem,
Dinah
P.S.: Wenn es geht, hänge ich sozusagen eine Dokumentation meiner Lösung an, vielleicht sucht ja jemand nach so etwas. Da gibt es eine Erklärung der Inhaltstypen, die ich erstellt habe und eine exportierte Beispiel-View.
P.P.S.: Ich erkläre das bei bedarf auch sehr gerne in Ruhe und ausführlich. Bitte dann einfach hier melden.