Xin ví dụ thực tế về 1:1 1:n n:n Relationship

Hi ! em đọc lý thuyết về quan hệ 1:1 , 1:n , n:n nhưng cảm thấy hơi khó hiểu hoặc hiểu chưa đầy đủ, chính xác. Các anh chị cho em vài ví dụ thực tế về các mối quan hệ này giúp em với !
Em hiểu như này :
1:1 là khóa chính của Mã căn cước công dân của bảng A sẽ liên kết với khóa chính của mã số giấy phép lái xe A1 của bảng B ( vì 1 mã bằng lái A1 chỉ tương ứng với 1 CMND )
1:n trường Mã số sinh viên ( khóa chính) trong bảng C sẽ liên kết với trường mã sinh viên đi học trễ trong năm của bảng D ( vì 1 mã số sinh viên có thể đi trễ nhiều lần )
n:n thì e không hiểu nổi, phải tạo thêm bảng, quan hệ trung gian mới được

1:1 —> 2 khóa chính liên kết với nhau
1:n —> 1 khóa chính và một khóa ngoại liên kết với nhau
n:n —> 2 khóa ngoại liên kết với nhau

Theo mình thì nên tách ERD và Relational Database (RDB) thành 2 khái niệm riêng, không nên để chung. Trong đó RDB chỉ là 1 cách implementation của ERD.

Khái niệm 1:1, 1:N, N:N chỉ có trong ERD, còn RDB hiện thực bằng cách dùng liên kết khoá ngoại - khoá chính. Riêng N:N thì RDB dùng tới 2 khoá ngoại, và 2 khoá đó nằm ở bảng trung gian.

Ví dụ về N:N:
Môn học - Sinh viên
1 Môn học có nhiều sinh viên đăng kí, mỗi sinh viên học nhiều môn học

Dự án - Nhân viên
Nhân viên tham gia 1 hoặc nhiều dự án, một dự án có nhiều nhân viên tham gia.

Hàng hoá - Xe vận chuyển (Logistics)
Xe vận chuyển chở nhiều hàng hoá khác nhau.
Một hàng hoá được vận chuyển bởi 1 xe, hoặc nhiều xe vận chuyển 1 hàng hoá, như trường hợp gửi hàng HCM ra Hà Nội, 1 chiếc xe chạy liên tỉnh, 1 chiếc chạy nội thành gửi đến khách.

8 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?