Empfehlungen: Erweiterte Suche

HABTM mit Attribut

Datenbankobjekte strukturieren und validieren

HABTM mit Attribut

Beitragvon muellae » Do 5. Mai 2011, 07:29

Hallo allerseits

Ich bin neu in CakePHP und habe versucht ein kleines Projekt zu starten. Leider scheitere ich zur Zeit am baken, ich möchte das in einem ersten Schritt nicht manuell machen, da mir im Code noch der Überblick fehlt.

Zu meinem Datenmodell, es ist etwas komplex und könnte die bake funktion evt schon überfordern, aber das könnt ihr mir hier bestimmt sagen.

Also kurz zum Datenmodell:
Es geht grob um eine Volleyball-Statistik.
1) Es gibt Player welche in n Teams spielen können und Teams haben üblicherweise n Player.
2) Es gibt Games, welche n Sets haben können, ein Set gehört zu genau einem Game.
3) Ein Set kann n Scores haben (üblicherweise 2) die dann zum jeweiligen Team gehören

Punkt 3 ist, wo es kompliziert wird. Ich will das ganze abstrahieren und dynamisch machen, auch wenn üblicherweise 2 Mannschaften gegeneinander spielen. Ist schöner und weniger Konstanten in der App.

Die Fehlermeldung kann ich gerade nicht wiedergeben, da ich diese nicht dabei habe. Das Problem wird aber meiner Meinung nach bei sets_teams liegen, da dort noch das Score aufgeführt ist. Aber irgendwie geht es nicht anders, denn was ein Team mit genau einem Satz verbindet, ist die Anzahl Punkte, welche erzielt wurden. Ich habe auch schon versucht, sets_teams in "scores" umzubenennen, damit cake bake nicht drauf anspringt, trotzdem kriege ich Fehler.

Ich hoffe ich habe mit meiner Frage euren Nerv getroffen, ich finde es eigentlich ziemlich spannend, aber komme leider echt nicht weiter.

Danke im Voraus für die Hilfe und viel Spass

Gruss muellae
Dateianhänge
vol_db.png
DB Model Volleystats
vol_db.png (12.81 KiB) 115-mal betrachtet
muellae
 
Beiträge: 3
Registriert: Do 5. Mai 2011, 06:54

Re: HABTM mit Attribut

Beitragvon mbrod » Do 5. Mai 2011, 08:22

HABTM ist oft nicht so optimal. Statt sets_teams ein eigenständiges model nehmen und mit belongsTo mit den sets und teams verbinden. Im Gegenzug bei teams und sets hasMany.
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Re: HABTM mit Attribut

Beitragvon muellae » Do 5. Mai 2011, 08:31

Hallo mbrod

Danke für die Antwort. Das habe ich versucht, also sets_teams durch scores ersetzen. Die Felder bleiben dabei die gleichen und anstatt habtm zwischen sets und teams zu verwenden durch hasMany ersetzen:

- Set hasMany Scores (eins pro Satz und Team)
- Team hasMany Scores (genauso eins pro Satz und Team)

Gibt es sonst noch Tipps? Das habe ich ansich schon versucht, aber wenn das die empfohlene Lösung ist werde ich nochmal komplett durchstarten.

PS: brauche ich beim Verwenden des erwähnten "Scores" eine ID auf der Tabelle? Eigentlich nicht nötig, da durch set_id und team_id eineutig, aber vielleicht steht cakePHP ja darauf?

Gruss muellae


update: angepasstes DB Model
Dateianhänge
vol_db1.png
vol_db1.png (19.04 KiB) 113-mal betrachtet
Zuletzt geändert von muellae am Do 5. Mai 2011, 08:44, insgesamt 1-mal geändert.
muellae
 
Beiträge: 3
Registriert: Do 5. Mai 2011, 06:54

Re: HABTM mit Attribut

Beitragvon euromark » Do 5. Mai 2011, 08:39

jep, cake steht auf die ID in JEDER tabelle :)
euromark
 
Beiträge: 643
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: HABTM mit Attribut

Beitragvon muellae » Do 5. Mai 2011, 08:46

Hi euromark

euromark hat geschrieben:jep, cake steht auf die ID in JEDER tabelle :)


Auch in der habtm tabelle players_teams? Da ist es optional, meinte ich?
muellae
 
Beiträge: 3
Registriert: Do 5. Mai 2011, 06:54

Re: HABTM mit Attribut

Beitragvon euromark » Do 5. Mai 2011, 09:24

mit jeder mein ich genau das was "jede" impliziert - auch die HABTM
euromark
 
Beiträge: 643
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows


Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast