Jag skulle behöva designrekommendation. Känns inte helt uppenbart hur det är tänkt, själva systemet verkar lite rörigt från början?Relationer och design
Utgångsläget är en applikation (formulär, rapporter och databas) gjord i access.
Vi säger att det rör sig om några hundra elever som skall registrera vilka kurser de gått.
Ett antal kurser är obligatoriska för en stor del av eleverna men den största delen är personliga kurser som eleverna anger själva med fritext.
För att förenkla sökning av vilka som gått/inte gått de obligatoriska kurserna lägger någon central gestalt (läs administratör) upp dessa kursdata och eleven kompletterar endast med datum när denna utb är genomförd.
Möjligheten finns nu för eleven att välja bland ett antal allmänna/obligatoriska kurser men det skall även gå att lägga upp personliga.
Informationen som kan registreras för varje kurs är
Kursnamn - tvingande
Kursdatum - tvingande
Kursledare - valfritt
Kurslängd - valfritt
I det fall det är en personlig kurs lägger eleven in all information.
I det fall det är en allmän kurs kompletterar eleven endast med datum.
För varje kurs skall även en adminstratör ha möjlighet att godkänna att eleven verkligen genomfört denna.
Syftet som skall uppnås är alltså
- att man skall kunna plocka ut en samlad rapport (allmänna och fritext i kronologisk ordning) med kurser en elev gått
- att kunna söka på de obligatoriska kurserna - vilka har gått/inte gått dessa
- söka fram icke godkända kurser
- normal funktionalitet såsom lägga till, ändra, ta bort
Det finns alltså en
1-n koppling mellan elev och de personliga kurserna
n-n koppling mellan elev och de allmänna kurserna
Skall man dela upp kurserna i 2 tabeller eller lagra allt i samma tabell? I vilket fall som helst krävs väl att man vet om det är en personlig eller allmän kurs för att veta hur man skall hantera ev tillägg/ändringar/borttagningar...
Några förslag? Normaliseringsregler etc...Sv: Relationer och design
Det finns två sorters kurser, Allmänna/obligatoriska, som alla måste läsa, och Personliga, som man väljer själv?
Och man kan inte ha samma personliga som någon annan?
I så fall är det ju precis som du säger att du har två lösningar.
Ett sätt som är ganska straight-forward blir:
Kurser
---
KursID
KursNamn
...
Allmän (Ja/Nej)
Deltagare
---
KursID
Personnr
Om man skapar en personlig kurs, så läggs sen automatiskt en post in i "Deltagare", via triggers eller programmatiskt.