lesrooster in sql opslaan

Status
Niet open voor verdere reacties.

fsasfsas

Gebruiker
Lid geworden
11 sep 2006
Berichten
429
Dag

Ik zal niet de eerste zijn die er tegenaan loopt maar ik krijg het niet opgezocht via google: ik wil een MySQL database opbouwen met daarin de lestabel van cursussen. Wat is hierbij de handigste manier? als ik een tabel opbouw met voor elke cursus een record en als velden de lesdata en -tijden, zit ik met het probleem dat niet elke cursus een gelijk aantal velden heeft. Sommige cursussen zijn veel korter dan andere cursussen. Heeft iemand een tip dan wel link? Met google kom ik steevast op allerlei tips over hoe een backup te schedulen voor SQL... Ik weet niet op welke termen ik dien te zoeken.

groetjes, Anjo
 
https://nl.wikipedia.org/wiki/Databasenormalisatie

je moet je dingen die je opslaat omzetten in entiteiten, en elke entiteit behoort een eigen tabel te krijgen:

- cursussen
- lokalen
- docenten

En uiteraard een aantal koppeltabellen om entiteiten met elkaar te kunnen koppelen.
 
Snap ik. Dank je wel. Ik dacht al dat het zoiets was maar ik was bang dat ik een voor de hand liggendere manier over het hoofd zou zien omdat ik er niet in thuis ben.

groetjes, Anjo
 
Ik zou zeggen: Lees die manual eens.
 
Mooi zo! :)
Hoop dat je eruit komt, geef anders een gil.
 
Mooi zo! :)
Hoop dat je eruit komt, geef anders een gil.

Gelezen en een heleboel sites bekeken die hiermee te maken hebben maar ik zie nergens een voorbeeld van een subprobleem wat ik heb. Ik heb inmiddels wel vrij duidelijk hoe het zit met tabellen, relaties, reduntanties, primary keys en foreign keys maar ik krijg 1 ding niet helder.
De database betreft een opleiding en er is veel ook op internet te vinden over het opslaan van bv personen, cursussen en koppeltabellen (wie volgt wat). De vraag waar ik nog mee zit is de volgende: Elke cursus heeft een rooster: data, lestijden, dat soort dingen. Maar niet elke cursus heeft evenveel van die dingen, dus een algemene tabel waarin de cursussen als records staan en de velden de data/tijden, kan niet. Sterker nog, er zijn cursussen die maar enkele dagen beslaan en er zijn cursussen die meer dan 50 lessen omvatten, verspreid over het jaar. Een algemene tabel (met dus als record de cursussen en als velden bv de lesdata) lijkt me niet te kunnen omdat dat dus zo variabel is.
Ik zie daarom niet goed hoe ik dat kan "veralgemeniseren" en in een relationele databasevorm kan gieten.
Ik heb het idee dat ik voor elke cursus een eigen tabel moet maken waarin de records dan in feite de data vormen waarop een les gegeven wordt. Maar de link is dan niet met een cel, de link is dan met de NAAM van de tabel. Is dat een gebruikelijk iets?
Ik kan nergens een voorbeeld vinden. Het lijkt me nochtans iets wat veel voor komt. Iemand enig idee om me in de juiste richting te krijgen?

groetjes, Anjo
 
En een eigen aanvulling: ik kan natuurlijk al die "aparte" tabellen onder elkaar hangen in 1 tabel. met slechts enkele records voor een cursus die weinig lessen heeft en veel records voor een cursus die veel lessen heeft. Die mogelijkheid was me even ontgaan.

dank voor het meedenken

groetjes, Anjo
 
Elke cursus heeft een rooster: data, lestijden, dat soort dingen. Maar niet elke cursus heeft evenveel van die dingen, dus een algemene tabel waarin de cursussen als records staan en de velden de data/tijden, kan niet.
Volgens mij snap je het principe van normaliseren nog steeds niet helemaal. Het is totaal niet relevant in een goed ontworpen database of een cursus één dag, één maand of meerdere jaren duurt. Je geeft een begintijd en eindtijd op, en je hangt er een schema onder. Uiteraard allemaal gekoppelde tabellen. Een cursus die langer duurt, heeft alleen maar meer records in die tabel dan een kortere cursus. Maar dat heeft dus geen enkele invloed op het ontwerp van de tabellen.

Deze opmerking:
Een algemene tabel (met dus als record de cursussen en als velden bv de lesdata) lijkt me niet te kunnen omdat dat dus zo variabel is.
onderstreept mijn gevoel alleen maar.
 
Dag

Ik heb me er inmiddels nog meer in verdiept en had inmiddels door dat het anders moest. De vraag kwam in me op toen ik het inderdaad nog niet goed doorzag. Ik denk dus dat ik het nu wel begrijp. Vandaar dat ik ook de vraag op "opgelost' had gezet.

Met dank voor de toelichting.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan