Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Database MySQL untuk menyimpan produk, warna, ukuran dan stok

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - mengecualikan semua pengguna yang diblokir dari hasil

  2. Erlang emysql iPhone Emoji Encoding Masalah

  3. Kirim file dengan tukang pos ke Laravel API

  4. Bagaimana cara menggabungkan LIKE dengan IN dalam kueri MYSQL?

  5. Laporan Kehadiran di MySql