|
Tilbake til innleggsoversikten Tilbake
til første side Søk på GOLFSIDEN
Les mer
Her kan du legge inn: nytt innlegg
 goof - 31. Aug 2007 kl. 09:39 * IP
Nye GolfBox - Studentoppgave
Hei!
Jeg er dataingeniørstudent, og skal frem mot våren 2008 utvikle et databasesystem for en golfklubb, som skal ta for seg rutiner og problematikken rundt turneringer, påmeldte spillere på turneringer, og resultater på turneringer. På mange måter vil dette systemet fungere slik som GolfBox gjør i mange klubber i dag.
I forbindelse med dette oppdraget, er jeg ute etter tips til hva som burde være en del av dette systemet. Tradisjonelle såvel som utradisjonelle tips ønskes. Er du en turneringsadministrator i din hjemmeklubb, og vet om noe som ikke fungerer, eller som er "irriterende" med eksisterende system (GolfBox), så kom med tips til forbedringer i min versjon.
Følgende funksjonalitet er for øyeblikket en del av databasen:
Golfklubber, Golfbaner, Spillere, Turneringer, Påmelding til turneringer, Scoreinnlevering etter endt runde (taster inn hull for hull og får summert opp antall slag), utskrifter av resultatlister med hensyn på hvilken klasse man spiller i (herre, dame, junior), muligheter for spilleren til å kontakte turneringsadministrasjonen i etterkant av turneringen, for å få utskrift av sitt scorekort (for de som liker å holde statistikk), muligheter for statistikk for golfklubben (utskrifter av hull med høyest snittscore, lavest snittscore).
Kom med tips til flere fikse løsninger!
|
 Stian (31. Aug 2007 09:46) * IP
Høres veldig interresant ut. Jeg vil ha en kopi av den oppgaven når den er ferdig :P
Ang. registrering av score, skal du kun ha slag? Eller vil du inkludere kalkulering av stableford iht til slope/score osv ? Dette burde inkluderes for å ha et fullverdig verktøy som kan benyttes ved turneringer.
Driver med en lignende sak basert på MySQL og PHP for tiden, og har gruet meg til å sette igang med scoredelen av databasen.
 goof (31. Aug 2007 10:09) * IP
Foreløbig kan jeg kun ha slag ja. Har ikke lagt inn beregninger for stableford. Dette kan vel bli svært omfattende da jeg må involvere slopetabellen til hver bane jeg registrerer i systemet.
Jeg skal utvikle ved hjelp av SQL Server. Brukergrensesnittet tror jeg jeg skal lage i MS Access da dette er et program jeg har veldig god kjennskap med. Bruker du MySQL for tabellstruktur og PHP for brukergrensesnittet?
 Stian (31. Aug 2007 10:32) * IP
Å inkludere Stableford er absolutt en omfattende bit av det hele ja. Men selv om du ikke inkluderer det nå, sørg for å legge det til rette slik at det enkelt kan implementers ved en senere anledning.
Yepp, jeg kjører MySQL som database med PHP og html som frontend.
Kjører en artikkeldrevet side for tiden, og har kun begynt smått begynt med å komme igang med scoreregistreringsbiten. Pr. idag kan jeg legge inn golfbaner og gjøre de nødvendige knytningene til klubb/region etc. Det spennende(les: høyt frustrasjonsnivå) vil komme når man skal registrere scorer, kalkulere poeng etc på de samme golfbanene :)
 HenrikFan (31. Aug 2007 12:25) * IP
Regner med at du spiller golfturneringer selv?
Anbefaler deg å spørre om å være med i turneringskomitteen i en klubb på en turnering eller to for å se hvordan det fungerer i praksis(de må bruke Golfbox da).
Ellers så har Golfforbundet kurs i Golfbox som kan være nyttige. Synes jo golfforbundet burde gi deg stipend til en god sak, så du kan være med gratis! Hør med dem.
 goof (31. Aug 2007 14:44) * IP
Stian: Ja skal prøve å legge tul rette for utvidelse av systemet til å kunne beregne stableford-poeng. Kan eventuelt prøve å implementere det i en del av systemet (for eksempel for kun en av klubbene). Har for tiden en datamodell som skal fungere heilt greit. Læreren vår mente at systemet burde være såpass komplekst at det inneholdt rundt 20 entiteter eller tabeller. Følgende entiteter inngår i systemet nå. Har du forslag til andre ting jeg bør ta med? :
År
Måned
Turnering
Golfbane
Golfklubb
Spiller
Hull
Deltagelse
Hullscore
Klasse
Region
Vurderer å også ta med entiteten/tabellen "Starttid", slik at en turnering kan ha mange starttider. (snakker litt "datamodelleringsspråk" her nå, håper du skjønner det). Det som eventuelt må ordnes da, er at en starttid kan maks inneholde 4 registrerte spillere (altså en flight), vet du om dette går an å lage til i SQL? Altså sette begrensninger på hvor mange poster som kan være i en tabell?
HenrikFan: Jeg har planer om å spørre min hjemmeklubb om å få en liten innføring i turneringsadministrasjons-biten av golfbox. Har også allerede vært med på en del score-registrering i golfbox så har en viss formening om hvordan det fungerer.
Takk for gode tips! :)
 Ture (31. Aug 2007 15:37) * IP
For å beregne stableford poeng må du ha med:
Slope tabell for bane
Spillers eksakte hcp
Hullets index
 Dilter (31. Aug 2007 17:03) * IP
Du trenger vel strengt tatt ikke slopetabellen, men bane-"rating" og slope rating for hvert utslagssted for herrer og damer. Formelen for å regne ut spille-hcp er jo ikke så komplisert (selv om jeg ikke har den i hodet).
 squur (31. Aug 2007 21:34) * IP
Tror ikke jeg vil brukt Access som brukergrensesnitt. Det gjelder å tenke litt lisenskostnader, hver arbeidsstasjon må ha en egen lisens.
Det enkleste er å skille database, forretningslogikk og presentasjon fra hverandre. I eksempelet med max fire spiller i en flight vil man typisk legge inn begrensningen i forretningslogikken. Ta et søk på MVC i Google,
-
squur
 Link (01. Sep 2007 02:29) * IP
Du trenger ikke tabell/entitet for måned og år, med mindre du har svært, svært overbevisende argumenter.
Du trenger:
Club
*Id
*Name
Course
*Id
*Name
Hole
*Id
*Number
*Name
*Par
*Length
*Index
...
Ball/Flight/Whatever
*Id
*StartTime
*Booker (->Player.Id for eksempel)
Player
*Id
*Postal info...
*HCP
*....
BallParticipants
*BallId
*PlayerId
HoleScore (ref player, hole, ball)
*Id
*PlayerId
*BallId
*Strokes
Eller noe i den dur, litt drodling med ER-diagram eller lignende får deg nærmere.
Enkleste måten å komme frem til en struktur man kan begynne med er å tenke slik:
Vi skal holde orden på turneringer (Trenger turneringstabell.) I en turnering har vi flighter/baller. (Vi trenger en flight/ball-tabell.) En flight består av et antall spillere. (Vi trenger en player-tabell og en krysstabell mellom flight/player.)
Disse spiller på en bane (Vi trenger en bane-tabell) som tilhører en klubb (vi trenger en klubb-tabell, og bane må referere til denne.) En bane består av X antall hull. (Vi trenger en hull-tabell.)
Spillerne i en ball har score pr hull. (Vi trenger en tabell som samler player, flight, hull med score.)
Drodling på tavle anbefales. Lag fleksible mange-til-en relasjoner.
For å overholde maks 4 i en ball, legg på en trigger i databasen, eller legg dette i business-laget.
(Ved alt som er hellig, unngå tabeller med felter som Hole1, Hole2 osv. :-)
 HenrikFan (01. Sep 2007 08:33) * IP
Husk at Golfbox' turneringsfunksjon har en integrasjon mot medlemsregisteret i GolfBox også. For noen år siden var dette record-navnene ( er ikke alt somer relevant for turneringer)
n3sportid
Kjønn
Fornavn
Etternavn
Postnummer
Poststed
Fødselsdato
Postadresse
Epost
Tlf jobb
Tlf mobil
Tlf privat
Medlemstype
Norsk Golf
Internt medlemsnr
Hovedmedlem (internt medlemsnr)
Handicap
Hovedmedlem (n3sportid)
Postadresse 2
Gateadresse
Skjul adresse
Skjul Epost
Skjul tlf jobb
Skjul tlf privat
Skjul tlf mobil
Tilleggsinfo 1
Tilleggsinfo 2
Tilleggsinfo 3
Delingsnivå
Status passiv
Medlem siden
Notisblokk
Klubbnummer
Klubbnavn
Land (for adresse)
Handicapdato
Hjemmeklubb
Hvis nei, oppgi hjemmeklubb
Klubbkontigent betalt
Antall aksjer/andeler/spilleretter
Kønummer
 goof (01. Sep 2007 10:03) * IP
link:
Grunnen til at jeg har tatt med år og måned er for at jeg kunne søke opp på hvilke tuneringer som er i en bestemt periode i en klubb for eksempel. Dette er en esensiell funksjon i systemet mitt. Tar også med golfklubb og golfbane i forskjellige entiteter da det kan delta spillere fra andre klubber en den som har turneringen.
Relasjonene du forklarer er elementær datamodellering som jeg tross alt ikke har noe problem med å sette i sammenheng, men tusen takk for tips uansett! :)
 ??+ (01. Sep 2007 22:33) * IP
Ta en prat med golfforbundet.
Neste sesong har vi alle ett kombinert medl.kort/hcpkort -plastkort og oppdaterer det i boksene som vil stå rundt på alle banene. antar at det blir på omtrent annehvert hull. Noen klubber har kjørt dette som pilot her i Norge i år og slik det har vært i Sverige og Danmark ett par år. Hvis jeg er riktig informert.
Systemet ditt må kobles opp mot dette, og medl.reg. til ngf og idrettsregistreringen i tillegg. Skal det være noe å bygge videre på må det bli ett system som er raskere og bedre enn golfbox. Med bedre mener jeg flere funksjoner imdividuelt og enklere betjening. Ikke minst med turneringoppsett variantene.
I dag kan du se alle rundene som er registrert i golfbox de siste årene. Jeg regner med at dette blir betydelig utvidet neste sesong. Flaskehalsen er kapasiteten.
Lykke til.
 Modell (02. Sep 2007 08:12) * IP
Goof:
Selv om du ønsker å søke opp turneringer for en bestemt periode så trenger ikke måned og år være med som egne entiteter.
Dette lager du aller enklest ved å la tabellen "Turnering" ha et date felt som sier når turnering starter (og kanskje et felt for når turnering avsluttes).
Mistenker at du benytter Access sin mulighet til å lage forms direkte av tabeller, og da kommer det til å bli en kjeitete struktur.
Støtter meg til de over som anbefaler å skille data og businesslogikkken. Helst bør du ha 3 lag: data-, business- og presentasjonslag.
 goof (02. Sep 2007 11:30) * IP
??+: Oppgaven er en studentoppgave, og det er ikke meningen å faktisk publisere systmet som "det nye golfbox". Det hadde selvfølgelig vært en fordel å ha et system som faktisk kan fungere i praksis, men dette er en begrensing jeg har foretatt i systemet mitt. Et reelt virkeområde for systemet mitt kan for eksempel være i små golfklubber uten tilknytning til andre scoresystem som f.eks golfbox.
Modell: Vet at jeg ikke Trenger å ha med år og måned som egne entiteter for at denne "søkefunksjonen" jeg beskriver skal fungere, men ser heller ingen grunn til å ikke ta det med som egne entiteter i datamodellen da dette er data som skal brukes opp igjen mange ganger, og da like gjerne kan skilles ut som egen entitet. Skal ikke bruke Access sine skjemafunksjoner nei.
Noen som er kjent med SQL-server? Er det andre baseutviklingsverktøy noen mener er bedre? Oracle? Høres ut som det faktisk er en del datakyndige på golf-forumet :)
 Link (02. Sep 2007 14:58) * IP
SQLServer er lettstelt. Oracle er knallbra, men tungt å komme i gang med. (Er mye lettere for en med å grønt kort i databaser å administrere/leke seg med/teste MSSQL enn Oracle.)
Men hvorfor ikke prøve PostgreSQL, f.eks.? Gratis, fri programvare, bra SQL-støtte (et par ærlige forsøk på å følge SQL-standarder), kjører native på Linux, Windows osv.
For utvikling er det veldig lett å jobbe med MSSQL-server, men PostgreSQL har også bra verktøy.
 HenrikFan (02. Sep 2007 20:05) * IP
MySQL er også greit
 goof (02. Sep 2007 22:35) * IP
Tror jeg må bruke SQL-Server da det er dette undervisningen i faget er basert på, men som frontend kan vi velge hva vi skal bruke for å lage brukergrenesnitt.
Hørt om mange som har brukt Access, siden dette er meget lett, men andre som brukes HTML, PHP, Java. Noen anbefalinger? Er ikke redd for utfordringer. Kan en del HTML, Java, C++ og C# fra før.
 Link (03. Sep 2007 01:16) * IP
Skal du først bruke MSSQL og kan noe C#, så burde du ta en titt på asp.net. Greit å komme i gang med, og det finnes diverse bra gratisverktøy for å programmere mot asp.net
 FriDropp (03. Sep 2007 08:18) * IP
Dette er et golfforum så det var kanskje på tide å terminere detaljer i ER diagram, serverløsninger o.l.
Men før jeg avslutter: Microsoft har en developer utgave av SQL server som er gratis og som du kan installere på din egen PC. Her kan du også kjøre IIS (webserveren) og dermed ha full utvikling lokalt. Etter det kan du velge mellom å håndkode sidene med asp.net (.ASPX filer) eller om du vil bruke Visual Studio. Gjør du det slik får du rimelig problemfri porting til en webhost på Microsoftplattform.
The End.
 Stian (03. Sep 2007 15:42) * IP
Ser du har fått mange gode tips her Goof. Og med min kompetanse innen databaser har jeg ikkeno mer å føye til.
Men mtp på grensesnittet så må du vurdere hvordan bruke av dette skal være. Det helt klart mest tilgjengelige er å ha grensesnitt på web, da enten via f.eks ASP eller PHP.
Med ett web grensesnitt er det eneste du trenger for tilgang en broswer. Noe som gjør tilgjengeligeten størst mulig.
Selv kjører jeg PHP, og har funnet at det er ganske så enkelt å forholde seg til. Siden Mars i år hadde jeg null erfaring med PHP, men fant fort ut at PHP er relativt enkelt å forholde seg til.
 goof (03. Sep 2007 17:01) * IP
Takk for alle gode tips og triks!
|
Tilbake til innleggsoversikten (Her bruker du kun ett nick!)
|