[DB] Cursus Management System

Pagina: 1
Acties:

  • RickyHeijnen
  • Registratie: Maart 2005
  • Laatst online: 30-04-2025
Goedenavond, ik ben bezig met het ontwerpen van een Cursus Management Systeem. Ik zal even uitleggen wat het is. Verschillende organisaties in Nederland organiseren regelmatig gebarentaal-cursussen. Tot nu was het zo dat iedereen op de website per mail naar de juiste organisatie een aanmeldformulier kon aanvragen per post, deze invullen, terug sturen en dan kreeg je paar dagen later per mail bevestiging. Je moest op het formulier dan aangeven of je je wilde aanmelden voor niveau 1, 2 of 3 en als je dan niveau 1 deed moest je nog kiezen tussen maandag en dinsdag bij niveau 2 voor dinsdag of woensdag (etc..). Nja, dit gaat niet altijd meteen goed en het formulier was soms nogal onduidelijk. Zoals je begrijpt een grote administratieve bende. DUS is mij gevraagd of ik misschien een oplossing had. En dat heb ik. We gaan het automatiseren :P.

Maargoed, to the point. Het systeem gaat dus gebruikt worden door diverse organisaties, die het allemaal op eigen wijze organiseren (allen op andere datum's, andere locaties etc..). Voor allen ziet het formulier er dus anders uit (probleem 1). Ze moeten dus via het systeem een formulier kunnen opbouwen waarbij je dus ook interactiviteit kunt toevoegen (als gekozen wordt voor niveau 1, dan keuze tussen maandag en dinsdag). (probleem 2). Via hun websie kunnen ze dan linken naar hun eigen formulier (form.php?id=#) en als ze inloggen in het systeem kunnen ze een overzicht van alle nieuwe aanmeldingen. Ook kunnen ze een cursus toevoegen en dan mensen verplaatsen van status 'nieuw' naar een cursus. Verder moeten ze in de overzichten van het formulier kunnen aangeven welke gegevens ze in de kolommen willen zien (bijv. naam, adres, telefoon, email). Deze voorkeuren zijn namelijk voor elke organisatie anders (probleem 3).

Verder moet er bijv. bijgehouden worden wie betaald heeft, of de persoon de toets heeft gedaan (is niet verplicht) en of deze vervolgens is gehaald in 1x of met herkansing of helemaal niet (ook deze velden zijn per organisatie anders). En last but not least, als een cursus voorbij is wordt deze naar het archief geplaatst en vervolgens kunnen alle organisaties in elkaars archief kijken (maar niet wijzigen).


Nouja je begrijpt het, nog een hele klus. Dit is voor mij niet het eerste grote project in PHP, maar wel het eerste project dat ik een beetje gestructueerd wil aanpakken. Voorheen was het zo dat ik een paar tabellen maakte, begon met scripten en tussendoor nog veel veranderde wat weer in het script veranderd moest worden bla bla bla. Nu hoopte ik eigenlijk of jullie nog tips hadden.

Even kort: Een organisatie moet dus velden kunnen toevoegen (en aangeven of ze wel of niet in het formulier moeten). Dan moeten ze per overzicht van een cursus kunnen opslaan welke gegevens er in het overzicht te zien zijn. Dus een tabel organisaties, velden, cursussen en deelnemers. In de tabel cursussen wordt dan voor elke organisatie een cursus 0 gemaakt waar de instellingen instaan voor het overzicht van de nieuwe aanmeldingen.

Ben ik zo goed op weg, of hoe pak je zo'n databaseontwerp nou aan?

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Ik zou zeggen dat je moet beginnen met structuur op te leggen aan die organisaties. Of anders abstracties inbouwen in die velden; het is immers (als ik het goed begrijp) juist de bedoeling van jouw systeem dat het een meer geunificeerde aanpak wordt. Als jij het systeem te flexibel ontwerpt blijft het alsnog een administratieve rotzooi.

Ik zou dus eens beginnen met kijken naar alle verschillende formulieren en kijken in hoeverre het mogelijk is er gedeelde eigenschappen uit te halen.

Rustacean


Verwijderd

Zoek in eerste instantie de overeenkomsten en ontwerp je datamodel. Waarschijnlijk valt het verschil wel mee. Er zijn maar 7 dagen en zo te zien een beperkt aantal cursussen. NAW gegevens verschillen niet zo heel erg en desnoods maak je een tabelletje met per organisatie welke NAW gegevens verplicht zijn. Zelfde geldt voor de toets: Die bestaat of niet, en er zijn slechts een beperkt aantal mogelijke uitkomsten

In mijn ogen is dit een vrij simpel en klein project :) Maar als je nog nooit een database hebt ontworpen kan je verdwalen in de mogelijkheden. In dat geval is het verstandig om minimaal eens een boek te gaan lezen over normaliseren, want zonder goed datamodel wordt het simpele PHP formpje al gauw een onbeheersbare puinhoop met IF THEN constructies.

[ Voor 3% gewijzigd door Verwijderd op 19-02-2006 00:50 ]


  • RickyHeijnen
  • Registratie: Maart 2005
  • Laatst online: 30-04-2025
Nja ik heb het voorgelegd, maar ze willen het allemaal zo blijven doen zoals het nu gaat. En omdat ik eerst had gezegd dat de manier waarop het nu gaat geen probleem is voor het systeem, kom ik er volgens mij niet meer onderuit :). Dus daar ligt de oplossing niet.

Maar ik heb al een beetje zitten denken. Als ik dit eenmaal een beetje goed gebouwd heb, beetje leuk vormgeef en wat leuke extraatjes toevoeg, kan ik het makkelijk wat meer 'algemeen' als een product verkopen...

Ik denk dat ik er met die database wel uitkom, maar hoe doen jullie dat altijd, gewoon vanuit phpmydamin de tabellen etc. aanmaken of eerst echt in visio oid een prototype maken van de database?