Vinnaren i pepparkakshustävlingen!
Visar 1 till 1 av 1.
Forum: Databaser
2014-11-25, 22:55
Citat:
Ursprungligen postat av _x3m_
Ok trodde inte man behövde en tredje tabell utan att det kunde se ut något så här

People
People_ID, People_name
1 , Anna
2 , Ola
3 , Tina
4 , Stina

Group
Group_ID, Group_name, People_ID (FK)
1 , Grupp 1 , 1
2 , Grupp 1 , 1
3 , Grupp 3 , 3
4 , Grupp 3 , 3

Anna och Tina matchar sitt People_ID(PK) i tabellen Group, dvs de tillhör grupp 1 och grupp 3. Kan man inte göra så?
Ok, vad händer då den dagen du vill byta namn på en grupp? I ditt fall skulle du bli tvungen att uppdatera på potentiellt tusentals ställen eftersom din tabell bryter mot så gott som samtliga normalformer, istället för att om du isolerar din grupp till en tabell räcker det med att du byter namn på ett och endast ett ställe för att uppdatera gruppnamnet, med det förfarandet riskerar du dessutom aldrig att ett id kan peka ut två olika gruppnamn.

Stoppa nu i en extratabell så ska du se att dina sqler framöver som du kommer behöva använda blir begripliga och får plats på en rad, istället för de miljoner update du måste skriva annars.

Redan nu ser du ju din anomali i tabellen eftersom gruppid 1 och 2 pekar på en och samma grupp, vad ska du i sådana fall med ett gruppid till om det inte unikt kan identifiera en grupp?