Ini meja Anda.
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
....
Anda melihat bagaimana Anda telah menduplikasi nama produk "Kemeja Nike" dan warna "biru". Dalam database relasional yang dinormalisasi, kami tidak ingin menduplikasi informasi apa pun. Menurut Anda apa yang akan terjadi jika seseorang secara tidak sengaja mengubah "Kemeja Nike" menjadi "Rok Nike" di baris 4?
Jadi, mari menormalkan meja Anda.
Kita akan mulai dengan tabel Produk.
Product
id product
------ ------------
0 Nike Shirt
Umumnya, nomor id basis data dimulai dengan nol, bukan satu.
Selanjutnya, mari kita buat tabel Warna.
Color
id color
------ -------
0 black
1 white
2 blue
Selanjutnya, mari kita buat tabel Ukuran.
Size
id size
------ -----
0 XS
1 S
2 M
3 L
4 XL
5 XXL
Ok, sekarang kita memiliki 3 tabel objek terpisah. Bagaimana cara menggabungkannya sehingga kami dapat melihat apa yang tersedia?
Anda memiliki ide yang tepat dengan tabel asli Anda.
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
Produk, warna, dan nomor ukuran adalah kunci asing kembali ke tabel Produk, Warna, dan Ukuran. Alasan kami melakukan ini adalah untuk menghilangkan duplikasi informasi. Anda dapat melihat bahwa setiap informasi disimpan di satu tempat dan hanya di satu tempat.
Id tidak diperlukan di tabel Stock. Produk, warna, dan ukuran harus unik, sehingga 3 bidang tersebut dapat menjadi kunci majemuk untuk tabel Stok.
Di toko ritel yang sebenarnya, suatu produk dapat memiliki banyak atribut yang berbeda. Atribut mungkin akan disimpan dalam tabel kunci/nilai . Untuk tabel sederhana Anda, kami dapat memecah tabel menjadi tabel relasional yang dinormalisasi.