Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cơ sở dữ liệu MySQL để lưu trữ sản phẩm, màu sắc, kích thước và kho

Đây là bảng của bạn.

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
  ....

Bạn thấy cách bạn đã sao chép tên sản phẩm "Áo sơ mi Nike" và màu "xanh lam". Trong cơ sở dữ liệu quan hệ chuẩn hóa, chúng tôi không muốn sao chép bất kỳ thông tin nào. Bạn nghĩ điều gì sẽ xảy ra nếu ai đó vô tình đổi "Áo sơ mi Nike" thành "Váy Nike" ở hàng 4?

Vì vậy, hãy chuẩn hóa bảng của bạn.

Chúng ta sẽ bắt đầu với bảng Sản phẩm.

Product

  id    product    
------ ------------
   0    Nike Shirt

Nói chung, số id cơ sở dữ liệu bắt đầu bằng 0, không phải một.

Tiếp theo, hãy tạo bảng Màu.

Color

  id    color   
------  -------
   0    black    
   1    white    
   2    blue 

Tiếp theo, hãy tạo bảng Kích thước.

Size

  id   size 
------ -----
   0    XS
   1    S
   2    M
   3    L
   4    XL
   5    XXL 

Ok, bây giờ chúng ta có 3 bảng đối tượng riêng biệt. Làm cách nào để chúng tôi kết hợp chúng lại với nhau để có thể xem còn hàng trong kho?

Bạn đã có ý tưởng đúng với bảng ban đầu của mình.

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

Số sản phẩm, màu sắc và kích thước là các khóa ngoại quay lại bảng Sản phẩm, Màu sắc và Kích thước. Lý do chúng tôi làm điều này là để loại bỏ sự trùng lặp của thông tin. Bạn có thể thấy rằng bất kỳ phần thông tin nào cũng được lưu trữ ở một nơi và chỉ một nơi.

Id không cần thiết trên bảng Stock. Sản phẩm, màu sắc và kích thước phải là duy nhất, vì vậy 3 trường đó có thể tạo thành một khóa ghép cho bảng Stock.

Trong một cửa hàng bán lẻ thực tế, một sản phẩm có thể có nhiều thuộc tính khác nhau. Các thuộc tính có thể sẽ được lưu trữ trong một bảng khóa / giá trị . Đối với bảng đơn giản của bạn, chúng tôi có thể chia bảng thành các bảng quan hệ chuẩn hóa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có đang sử dụng tổng hợp kết nối JDBC không?

  2. sqlalchemy + flask, nhận tất cả các bài đăng hàng ngày

  3. Chuỗi nối thêm MySQL

  4. cách lưu chỉ thời gian không phải ngày tháng trong cơ sở dữ liệu thông qua truy vấn sql

  5. Điền các trường ở dạng phương thức bằng PHP, jQuery