Her er dit bord.
Shirt
id product color size stock
---------------------------------------------
1 Nike Shirt black M 5
2 Nike Shirt white L 10
3 Nike Shirt blue M 2
4 Nike Shirt blue XL 3
....
Du kan se, hvordan du har duplikeret produktnavnet "Nike Shirt" og farven "blå". I en normaliseret relationsdatabase ønsker vi ikke at duplikere nogen information. Hvad tror du, der ville ske, hvis nogen ved et uheld ændrede "Nike-skjorte" til "Nike-nederdel" i række 4?
Så lad os normalisere dit bord.
Vi starter med en produkttabel.
Product
id product
------ ------------
0 Nike Shirt
Generelt starter database-id-numre med nul, ikke én.
Lad os derefter oprette en farvetabel.
Color
id color
------ -------
0 black
1 white
2 blue
Lad os derefter oprette en størrelsestabel.
Size
id size
------ -----
0 XS
1 S
2 M
3 L
4 XL
5 XXL
Ok, nu har vi 3 separate objekttabeller. Hvordan sætter vi dem sammen, så vi kan se, hvad der er på lager?
Du havde den rigtige idé med dit originale bord.
Stock
id product color size stock
---------------------------------------------
0 0 0 2 5
1 0 1 3 10
2 0 2 2 2
3 0 2 4 3
Produkt-, farve- og størrelsesnumrene er fremmednøgler tilbage til produkt-, farve- og størrelsestabellerne. Grunden til, at vi gør dette, er for at eliminere duplikering af oplysningerne. Du kan se, at enhver information er gemt ét sted og kun ét sted.
Id'et er ikke nødvendigt på aktietabellen. Produktet, farven og størrelsen skal være unikke, så disse 3 felter kan danne en sammensat nøgle til lagertabellen.
I en egentlig detailbutik kan et produkt have mange forskellige egenskaber. Attributterne vil sandsynligvis blive gemt i en nøgle/værdi-tabel . Til din simple tabel kan vi dele tabellen op i normaliserede relationelle tabeller.