Empfehlungen: Erweiterte Suche

Umsetzung: Alle in einem deutschen Verein aktiven Spieler

Datenbankobjekte strukturieren und validieren

Umsetzung: Alle in einem deutschen Verein aktiven Spieler

Beitragvon DerBjörn » Sa 11. Sep 2010, 15:40

Hi,

ich habe drei Models: player, club und country.
Jetzt möchte ich alle Spieler anzeigen, die in einem Verein eines bestimmten Landes (z.B.: Deutschland) aktiv sind. Ich besitze eine Verknüpfungstabelle clubs_players.
Die Tabelle clubs hat eine country_id als Fremdschlüssel.
Die Query für eine Liste von Spieler-IDs mit der oben genannten Bedingung würde ja dann grob so aussehen, wenn man annimmt, dass Deutschland die id = 1 besitzt.

Select CP.player_id FROM clubs_players as CP LEFT JOIN clubs AS C ON CP.club_id = C.id WHERE C.country_id = 1;

Ich möchte jetzt in einer View eines Landes (country) die dort in einem Verein aktiven Spieler anzeigen lassen, nur habe ich keine Ahnung, wie ich das jetzt genau anstelle.
Mein Gedanke war, dass ich eine Verknüpfung im Model country erstellen muss und es wohl eine HABTM-Verknüpfung sein muss, da ja clubs_players im Spiel ist.

Ist das richtig und wie sehe die dann aus?
Vielen Dank im Voraus :)
DerBjörn
 
Beiträge: 9
Registriert: Di 3. Aug 2010, 21:03

Re: Umsetzung: Alle in einem deutschen Verein aktiven Spieler

Beitragvon havanna » Mi 15. Sep 2010, 22:27

Hallo (Björn?),

mal eine Frage, die vielleicht eine Anregung sein kann, dein Modell zu überdenken:

Ich bin ja auch recht Fußball-interessiert (Juhu, habe 2 Tickets für Deutschland - Türkei gewonnen!).

Nun, normal kann ein Fußballspieler im Moment nur in einem Club tätig sein. Wenn er wechselt, dann wechselt er eben.
Außer du hättest eine Zeitkomponenten in deiner Verknüpfungstabelle clubs_players um abbilden zu können, von wann bis wann der Spieler in welchem Verein gespielt hat.
Falls das jedoch nicht der Fall ist, gehört doch eigentlich die club_id in die Spieler Tabelle, oder?

Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Umsetzung: Alle in einem deutschen Verein aktiven Spieler

Beitragvon DerBjörn » Mi 15. Sep 2010, 22:46

Hi Thomas,

Glückwunsch zu deinem Ticketgewinn :)
Dass du Fußballbegeistert bist, sieht man ja allein daran, dass du annimmst, ich würde hier über Fußball schreiben, was ich aber in keinster Weise (und zurecht) erwähnt habe ;)

Du hast aber mit der Annahme recht, dass ein Spieler immer nur in einem Verein gleichzeitig tätig sein kann und ja, ich habe 2 Timestamp-Felder in meiner clubs_players-Tabelle, um dieses entsprechend umzusetzen.
Zur Einfachheit habe ich dieses aber nicht in der Query mit aufgenommen.

Was ich jetzt habe sind zwei Verknüpfungen im Vereinsmodel. 1 x AlleSpieler und 1 x AktuelleSpieler. Letztere Verknüpfung bezieht die Wechselzeitbereiche mit ein für den aktuellen Moment.

Da weiss ich nicht, ob das wirklich so umsetzt, oder allgemein nur mit einer Verknüpfung (AlleSpieler) und dortdrin dann hinterher mit find und conditions (zeitliche) arbeitet.
DerBjörn
 
Beiträge: 9
Registriert: Di 3. Aug 2010, 21:03


Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast