mbrod hat geschrieben:Kleine Abschweifung: Das Bildschirmfoto vom Datenbank-Design, ist das von dem MYSQLWorkbench Programm, welches du in einem anderen Thema erwähnt hattest?
Ja, genau das ist von MySQL Workbench
mbrod hat geschrieben:So langsam sehe ich klarer.
recursive=2 hat aber doch schon Möglichkeiten gebracht, denn dort erscheint jetzt zu jedem Lied auch ein Artist array über den man den Namen des Künstlers ausgeben kann.
Ja, alle zugeordneten Künstler waren auch vorher schon da, konnten aber nicht zweifelsfrei einem Lied zugeordnet werden.
mbrod hat geschrieben:Es geht aber um den Autor.
Lyrics kann mehrere Künstler haben, die über die artists_lyrics Tabelle zugeordnet werden. Der Autor kommt ja auch aus der Künstlertabelle. Pro Lied nur ein Autor !? Dann kann man statt des Feldes autor auch artist_id nehmen und im Model Lyric belongsTo Artist definieren. (So habe ich das in einem ähnlich gelagerten Fall bei mir gelöst.) Dann reicht auch recursive=1 oder sogar 0. (Ich probiere das meistens aus um nicht zu viele Datenbankabfragen zu haben.)
Ja, gestern abend ist mir nach längerem anschauen auch noch eingefallen das ich als Name artist_id nehmen kann und zwar direkt über die in MySQL Workbench vorgegebene 1:n-Beziehung. Ich habe das ganze nur noch nicht ausprobiert. Ich frag mich auch warum ich das vorher nicht so gemacht habe. Wahrscheinlich weil ich für beide Tabellen schon eine Beziehung hatte und den Glauben hatte das pro Tabelle nur eine Beziehung geht. Ich muss das ganze mal testweise durchbacken dann sehe ich genau wie die Beziehungen in Models von CakePHP gesetzt sind.
Wo es vielleicht Probleme geben wird ist in der add.ctp, da dort nun zwei für Artist stehen, also:
- Code: Alles auswählen
- $form->input('Artist'); // artist_id
$form->input('Artist'); // artists_lyrics
Was ich aber vorher schon mit einer seperaten select gelöst habe, indem ich die Artisten im Controller nochmal auslese und für die Select einen geeigneten array mittels foreach vorbereite und den array dann als optionen an die select-Box weitergebe.[/quote]
mbrod hat geschrieben:Einen Gedankenknoten bekomme ich bei diesen Beziehungsdefinitionen schon auch immer: Lied hat einen Autor wird aber als belongsTo definiert. Kind hat einen Vater, gehört zum Vater... na ja.
Ja, das ist mit ds schlimmste was es beim Datenbank-Design gibt, die Beziehungen. Ich bin schon froh das ich da halbwegs durchblicke. Manch einer kann damit gar nichts anfangen.
Im Anhang nochmal das neue Datenbank-Design