Tady je váš stůl.
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
....
Vidíte, jak jste duplikovali název produktu „Košile Nike“ a barvu „modrá“. V normalizované relační databázi nechceme duplikovat žádné informace. Co si myslíte, že by se stalo, kdyby někdo omylem změnil „Nike Shirt“ na „Nike Skirt“ v řadě 4?
Pojďme tedy normalizovat váš stůl.
Začneme tabulkou produktů.
Product
id product
------ ------------
0 Nike Shirt
Obecně ID databáze začínají nulou, nikoli jedničkou.
Dále vytvoříme tabulku barev.
Color
id color
------ -------
0 black
1 white
2 blue
Dále vytvoříme tabulku velikostí.
Size
id size
------ -----
0 XS
1 S
2 M
3 L
4 XL
5 XXL
Dobře, nyní máme 3 samostatné tabulky objektů. Jak je poskládáme, abychom viděli, co je skladem?
Se svým původním stolem jste měli správný nápad.
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
Čísla produktu, barvy a velikosti jsou cizí klíče zpět do tabulek Product, Color a Size. Důvodem, proč to děláme, je odstranit duplicitu informací. Můžete vidět, že jakákoliv informace je uložena na jednom místě a pouze na jednom místě.
ID není nutné v tabulce akcií. Produkt, barva a velikost by měly být jedinečné, takže tato 3 pole by mohla tvořit složený klíč k tabulce Sklad.
Ve skutečné maloobchodní prodejně může mít produkt mnoho různých atributů. Atributy by byly pravděpodobně uloženy v tabulce klíč/hodnota . Pro vaši jednoduchou tabulku můžeme tabulku rozdělit na normalizované relační tabulky.