du skal fjerne de kolonner de er flere af (dato, kursusnavn osv.) og lave en primær nøgle - det er første normalform
2 normalform - kolonner i tabellen er afhængig af primærnøglen
3 normalform - skal du sørge for at alle kolonner er fuldt afhængige af primærnøglen og ikke er afhængige af andre kolonner/nøgler i andre tabeller (transitiv afhængighed)
Det er svært at normalisere, når man ikke kender forudsætningerne, men hvis fork er nøgle for kursusnavn og nr for personinformationerner, OG en person kan deltage på flere kurser, men kun på hvert kursus en gang, kunne det tænkes at se sådan ud:
Tabel1: Nr, Navn, Adresse, Postnr (Nr er primærnøgle)
Tabel2: Fork, Kursusnavn (fork er primærnøgle
Tabel3: Nr, Fork, dato (Nr+Fork) er samnmensat primærnøgle.
Mellem tabel1 og tabel3 samt mellem tabel2 og tabel3 skal der være en 1:N relation med en-siden i hhv. Tabel1 og Tabel2.
Kan en person kun deltage på det sanmme kursus flere gange, skal nøglen i Tabel3 bestå af alle tre felter.
Kan en person kun gå på et eneste kursus der Tabel3 overflødig. Så skal der kun være to tabeller:
Nr, Navn, Adresse, Postnr, Fork, Dato (med Nr som primærnøgle) og Fork, Kursusnavn (med Fork som kursusnavn
Der mangler en 4. tabel By postnr. 1-mange, der er jo kun "een by" som mange kan bo i. Kursus bør være i en tabel, mange går på samme kursus. Kan man gå på flere kurser bør der også være en kursustype (en tabel mere) og se sådan ud. Kursustype en til mange kurser til en deltager. Alt hvad der kan stå to steder skal i sin egen tabel - 3.normal form Noget af det virker overflødigt, men det var jo 3.NF ikke? Eyvind.
eyvind-> Grunden til at jeg ikke har en postnummertabel er, at By slet ikke forekommer i oplægget! Men er der et bynavn, hardu selvfølgelig helt ret.
Kursus er allerede i en tabel, nemlkig Tabel2 i mit forslag. Selv om man kan gå på flere kurser, er der jo ingen der siger, at man nødvendigvis skal dele dem op i flere typer. Hvis man undlader det, er der heller ingen grund til at lave en kursustype tabel.
Min løsning er alene lavet på grund af de data, der var til rådighed i det oprindelige spøergsmål.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.