[uml/php] klassendiagram voetbalvereniging - wedstrijden

Pagina: 1
Acties:
  • 334 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste mede-tweakers,

Ik ben bezig met het herstructureren/optimaliseren van de site die ik maak/beheer voor mijn voetbalvereniging. Reden daarvoor is dat er een aantal opties ontbraken en ik mijn code aan het omzetten ben naar OO. De site is php/mysql.

Nu ben ik aan de gang gegaan met een klassendiagram om te zorgen dat ik iig een goede basis heb waar ik op terug kan vallen en vanaf hier mijn database kan afleiden om vervolgens aan de slag te gaan met php.

Even kort samengevat wat de webapplicatie inhoudt/moet doen:
  • De vereniging heeft een aantal teams; afgelopen jaar 3, nu 2.. Dit kan dus variëren
  • Ieder team zit in een andere competitie
  • De wedstrijden van de hele competitie worden ingevoerd (dus ook wedstrijden waaraan bovenstaande teams niet deelneemen).
  • Aan de hand van uitslagen van competitiewedstrijden wordt een competitiestand berekend
  • Ik wil historie behouden van de gegevens. Over een paar jaar dus kunnen zien wie tegen wie speelde in welke competitie in wat voor soort wedstrijd tegen welk team etc.
Het lastige punt is denk ik voornamelijk dat niet alles een competitiewedstrijd is. Er zijn ook oefenwedstrijden/bekerwedstrijden/nacompetitiewedstrijden.
  • Oefen: Hoeft niet tegen een club uit de competitie te zijn, telt niet mee voor stand.
  • Beker: kan tegen elke willekeurige club zijn.. is eigenlijk een soort competitie op zichzelf, misschien met poules e.d. Stand bijhouden zou wel leuk zijn, maar is NIET dezelfde als die van de competitie.. Clubs zijn allemaal wel vooraf bekend...
  • Nacompetitie: Ook een mini-competitie opzichzelf met eigen stand (dus niet van de competitie). Is alleen WEL met clubs uit de eigen competitie..
Ik heb een klassendiagram hier: klassendiagram met wat mogelijke entries in een uiteindelijke db als notes ter verduidelijking (n.b. als je in de notities 'eboh' tegenkomt; dit is de naam van de vereniging; clubteam is dus overzicht van de team van de vereniging zodat je per Team kunt zien bij welk team van de vereniging deze in de competitie zit).

Lijstje met eerdere modellen die iig niet klopten (sorry voor size, er zitten jpg's bij):
v1
v2
v3
v4

Het lastige zit hem dus in de verschillende typen. In het laatste model zie je dus dat ieder team ingevoerd moet worden. Dus ook een willekeurige wedstrijd tegen een club is geen losse string maar wordt echt een object van klasse Team.

Er zitten wat dingen die ik voor mezelf gewoon niet duidelijk/goed krijg gemodelleerd. Ik hoop dat jullie me een beetje op de goede weg kunnen helpen. Ik zie door de bomen het bos niet meer.

Ik hoop dat ik het probleem zo een beetje goed uiteen heb gezet en jullie zin hebben even met me mee te denken. :>

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Er zitten wat dingen die ik voor mezelf gewoon niet duidelijk/goed krijg gemodelleerd. Ik hoop dat jullie me een beetje op de goede weg kunnen helpen. Ik zie door de bomen het bos niet meer.
Prima. Welke dingen zijn dat? :P

En je weet ook dat een OO model nagenoeg nooit 1 op 1 te vertalen is naar een ERD? Ik heb ook meer het idee dat je een ERD hebt gemaakt i.p.v. een classendiagram.

Wat is overigens het verschil tussen Clubteam en Team? Voor zovel ik nu zie zijn ze precies hetzelfde. Dan valt wat mij betreft ook de relatie weg tussen Team en competitie. Want een team zit niet in een competitie maar speelt wedstrijden in een competitie en doet daardoor mee aan een competitie. Dus uit de relatie tussen wedstijd en competitie kan je al halen welke teams in een bepaalde competitie spelen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Creepy schreef op maandag 06 juni 2005 @ 21:11:
[...]

Prima. Welke dingen zijn dat? :P
Uhm.. om mezelf nog maar even te quoten:
Het lastige punt is denk ik voornamelijk dat niet alles een competitiewedstrijd is. Er zijn ook oefenwedstrijden/bekerwedstrijden/nacompetitiewedstrijden.
Met name dus die verschillende type wedstrijden erin verwerken. :) Op één of andere manier krijg ik dat niet netjes verwerkt.
En je weet ook dat een OO model nagenoeg nooit 1 op 1 te vertalen is naar een ERD? Ik heb ook meer het idee dat je een ERD hebt gemaakt i.p.v. een classendiagram.
Hm daar heb je misschien een goed punt. :) Ik zal in principe natuurlijk nooit een klasse CompetitieClubteam gaan aanmaken. Dat feit alleen maakt het natuurlijk al geen klassendiagram. :o
In welk opzicht?
Wat is overigens het verschil tussen Clubteam en Team? Voor zovel ik nu zie zijn ze precies hetzelfde. Dan valt wat mij betreft ook de relatie weg tussen Team en competitie. Want een team zit niet in een competitie maar speelt wedstrijden in een competitie en doet daardoor mee aan een competitie. Dus uit de relatie tussen wedstijd en competitie kan je al halen welke teams in een bepaalde competitie spelen.
Quote mezelf nog een keer :) :
(n.b. als je in de notities 'eboh' tegenkomt; dit is de naam van de vereniging; clubteam is dus overzicht van de team van de vereniging zodat je per Team kunt zien bij welk team van de vereniging deze in de competitie zit).
Clubteam is dus een lijst met de teams van de club zelf. Er zitten in de afdeling van onze club komend seizoen 3 elftallen. Dat betekent dus 3 competities. Eigenlijk zou er denk ik ook een attribuut 'ditSeizoenActief' ofzo in moeten zitten, omdat je een team wel kunt toevoegen daarin, maar in het kader van historie niet meer kunt verwijderen. En dan weet je weer niet hoeveel teams momenteel actief zijn.

Maar kortom:
In Team staan dus alle teams die in het systeem terugkomen, die voor een wedstrijd geselecteerd kunnen worden. En deze heeft inderdaad geen directe relatie met competitie, om door jouw genoemde redenen. ;)
En een competitie hoort dus bij het 1e, 2e of 3e elftal van de vereniging zelf. Dit wordt hierin duidelijk gemaakt. Het idee is dat doordat een competitie aan een team van de vereniging wordt gekoppeld, er een overzicht komt in welk team in welk jaar in welke competitie heeft gespeeld.

Eigenlijk zou dit laatste ook teruggevonden kunnen worden door 'seizoen' op te nemen in 'Wedstrijd' en dan kijken naar het attribuut 'naam' in Team en kijken of daar 'eboh 1' of 'eboh 2' of iets dergelijks in terug komt. Maar voor hetzelfde geld is daar een keer 'eboh1' of 'E.B.O.H. 1' i.p.v. 'eboh 1' ingevuld en dan loopt het al spaak.

Maak ik het moeilijker of makkelijker met mijn nachtelijkse toelichting? ;)
Bedankt alvast.. Ga door zo! :> :)

[ Voor 9% gewijzigd door Verwijderd op 07-06-2005 15:48 . Reden: ERD/Klassendiagram ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Schopje if that's ok :)

Acties:
  • 0 Henk 'm!

Verwijderd

In diagram 4 kan je van die note linksonder misschien beter een enumeration maken?
Verder hoef je zoals in diagram 1 ID's niet per se te vermelden, aparte objecten hebben namelijk al een aparte naam. Als je toch ID's wil kan je daar IMO beter een String van maken ivm leading zeroes.

[ Voor 61% gewijzigd door Verwijderd op 09-06-2005 15:51 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Ik heb het idee dat je te moeilijk bezig bent. Een type competitie kan je prima bijhouden met een typeid o.i.d. in je competitietabel. Daarnaast, als je a.d.h.v. clubteam het aantal competities bepaalt, wat doe je dan als er twee teams in dezelfde competitie spelen?

Overigens moet je NOOIT gaan koppelen op namen (teamnaam), maar op ID's.
Overigens, zegt te term normaliseren je iets? ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt voor de moeite, maar toch wel wat tegen-argumenten als je me dat niet kwalijk neemt. ;)

@CybErik, van die note een enumeration maken? Een note is een verduidelijkende aantekening bij het model. Dus ik snap niet wat je wil dat ik daaraan verander? En wat betreft de id's, tja, als je gaat opnoemen wat er verkeerd is aan de diagramman die ik al verbeterd heb dan komen we niet verder. :) In de laatste versie staan geen id's (deze)Toch bedankt.

@Creepy, type zou in principe in competitie kunnen, alleen dan weet alleen ik welk type bij welk id hoort. plus dat je niet zomaar een type kunt toevoegen ofzo. Maar het zou op zich kunnen ja.
Twee teams van 1 vereniging spelen nooit in dezelfde competitie, dus daar hoef ik niet op te letten. :)
Ik koppel toch nergens op namen? Waar zie je dat?
En ja normaliseren zegt me wel iets.. Zeg me dan liever wat ik verkeerd heb genormaliseerd, dan kom ik misschien weer verder. :) Ook jij weer bedankt.

Alleen het probleem blijft dus nog een beetje hangen met de verschillende typen wedstrijden... Dat bijvoorbeeld een tegenstander in een oefenwedstrijd niet uit dezelfde lijst met teams hoeft te komen als eentje uit de huidige competitie...etc.

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op donderdag 09 juni 2005 @ 17:51:
...
Twee teams van 1 vereniging spelen nooit in dezelfde competitie, dus daar hoef ik niet op te letten. :)...
Volgens mij is dit wel mogelijk hoor. Dus misschien dat je er rekening mee kan houden?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Schopje... niemand meer?

Ik ga nu maar gewoon aan de slag met php en kijken waar het strand. Alleen heb toch geen fatsoenlijk model naar tevredenheid nu.

[ Voor 5% gewijzigd door Verwijderd op 23-06-2005 18:50 ]

Pagina: 1