Normalization · DSC Shop
Chuẩn hóa bảng đơn hàng 1NF về 3NF
Chuẩn hóa don_hang_1nf thành bốn bảng 3NF
Bảng don_hang_1nf khóa (order_id, sku) có cột phụ thuộc vào một phần khóa và phụ thuộc bắc cầu qua customer_id; sau chuẩn hóa thành khach_hang một-nhiều don_hang một-nhiều dong_hang, và san_pham một-nhiều dong_hang.
1
N
1
N
N
1
CHUẨN HÓA
1NF · KHÓA (order_id, sku)
3NF · MỖI SỰ THẬT LƯU MỘT LẦN
BẢNG
don_hang_1nf
#order_id
khóa
#sku
khóa
order_date
order_id
customer_id
order_id
customer_name
customer_id
customer_city
customer_id
product_name
sku
quantity
order_id, sku
unit_price
order_id, sku
BẢNG
khach_hang
#customer_id
customer_name
customer_city
BẢNG
don_hang
#order_id
order_date
→customer_id
BẢNG
dong_hang
#→order_id
#→sku
quantity
unit_price
BẢNG
san_pham
#sku
product_name
Tên khách đi theo customer_id, tên sản phẩm đi theo sku,
nên bị lặp ở mọi dòng hàng của bảng 1NF.
Sau khi tách: tên khách lưu 1 lần thay vì 7;
unit_price vẫn ở dong_hang vì là giá lúc mua.
CHÚ GIẢI
# khóa chính
→ khóa ngoại
1 … N một dòng bên 1 ứng với nhiều dòng bên N
chữ xám bên phải: cột quyết định nó
© tiennhm