Idag pratar jag lite om databasdesign och vad normalisering har för roll i det. Vi gick igenom första, andra och tredje gradens normalisering tillsammans med Boyce Codd.
Sedan gick vi igenom två olika databas-schema-strukturer i form av Star och Snowflake för att visa mer visuellt vad som händer när man normaliserar olika strikt. Jag visade skillnaden på fakta och dimensionstabeller, för att kunna etablera vad som är det affärsmässigt viktiga och vad som är mer-information.
Det sista vi gjorde var att gå igenom vad konsekvenser av normalisering är för oss utvecklare.
Jag tog fram dessa punkter:
- Lättare att prata om data, inte alltid lättare desto mer normaliserad men oftast lättare med någon form av normalisering
- Mindre att tänka på när man lägger till/uppdaterar data i form av potentiella missar
- Lite till mycket bökigare kod för att samla ihop datan om vi vill ha en helhetsbild.
- Många joins på joins
- Vara medveten om performance när man joinar tabeller, specifikt om man joinar en tabell på sig själv