Mối quan hệ n-n giữa các bảng trong Access

Ở bài viết này, hãy cùng Quantrimang.com tìm hiểu kĩ về cách thiếp lập mối quan hệ n-n. Quan hệ n-n là quan hệ giữa hai bảng mà một bản ghi của bảng A có thể có nhiều bản ghi phù hợp trong bảng B và ngược lại.

Để tạo mối quan hệ như vậy, hãy xác định bảng thứ ba, được gọi là bảng nối, có khóa chính bao gồm các khóa ngoại từ cả bảng A và bảng B để chia mối quan hệ n-n thành hai mối quan hệ 1-n. 

Tiếp tục với các ví dụ ở bài hướng dẫn trước, ta bổ sung thêm một bảng tblTacgia và một bảng nối tblTacgiaNoi. Bảng Tác giả bao gồm các trường TacgiaID, Ten, Ho, Diachi, Dienthoai, Email, Ngaysinh.

Thêm mới bảng tblTacgia có các trường như hình
Thêm mới bảng tblTacgia có các trường như hình

Thường thì một tác giả sẽ làm việc với nhiều dự án, cũng như một dự án có thể có nhiều tác giả cùng thực hiện. Như các bài hướng dẫn trước, bảng tblDuAn cũng có một trường tác giả, vì vậy, ta sẽ tạo một bảng riêng bao gồm các dữ liệu thông tin về tác giả. Vậy nên, chúng ta không cần trường này trong bảng Dự án nữa.

Bảng tblDuAn cũng có một trường về Tác giả
Bảng tblDuAn cũng có một trường về Tác giả

Chọn trường Tacgia, nhấn nút xóa và bạn sẽ thấy thông báo sau.

Xóa trường TacGia trên bảng này
Xóa trường TacGia trên bảng này

Click Yes.

Bây giờ chúng ta sẽ tạo một bảng nối. Bảng nối này có hai khóa ngoại như sau:

Thêm 2 trường ID của hai bảng vào bảng nối này
Thêm 2 trường ID của hai bảng vào bảng nối này

Các trường khóa ngoại này sẽ là các khóa chính từ hai bảng tblTacgiatblDuAn.

Để tạo khóa cho nhiều trong Access, chọn cả hai trường này, đi đến tab Design, nhấp vào Primary Key, các trường được chọn đều sẽ trở thành khóa.

Hai trường được chọn đều trở thành khóa
Hai trường được chọn đều trở thành khóa

Lưu bảng với tên tblTacgiaNoi.

Tiếp theo, đi tới Relationship trong tab Design để tạo mối quan hệ bằng cách nhấp vào Show Table. 

Thêm 3 bảng tblDuAn, tblTacgia và tblTacgiaNoi
Thêm 3 bảng tblDuAn, tblTacgia và tblTacgiaNoi

Chọn bảng tblDuAn, tblTacgiatblTacgiaNoi, nhấp vào Add để thêm cả ba bảng vào màn hình làm việc rồi đóng hộp thoại Show Table.

Cả 3 bảng tblDuAn, tblTacgia và tblTacgiaNoi được thêm vào màn hình
Cả 3 bảng tblDuAn, tblTacgia và tblTacgiaNoi được thêm vào màn hình

Sử dụng chuột để nhấp và giữ trường TacgiaID trong bảng tblTacgia, kéo nối đến trường TacgiaID bạn muốn kết nối ở bảng tblTacgiaNoi. Khi bạn nhả chuột, Access sẽ mở cửa sổ Edit Relationships. Lưu ý, mối quan hệ đang tạo Access sẽ coi là mối quan hệ 1-n. Bạn tích vào ô Cascade Update và click Create:

Kéo nối 2 trường TacgiaID của 2 bảng với nhau sẽ hiện ra hộp thoại Edit Relationships
Kéo nối 2 trường TacgiaID của 2 bảng với nhau sẽ hiện ra hộp thoại Edit Relationships

Kết quả:

Kết quả

Tiếp theo, bạn kéo nối trường DuAnID từ bảng tblDuAn đến trường DuAnID bảng tblTacgiaNoi, tích vào ô Enforce Referential IntegrityCascade Update Related Fields.

Kéo nối 2 trường DuAnID của 2 bảng với nhau để hiện ra hộp thoại Edit Relationships
Kéo nối 2 trường DuAnID của 2 bảng với nhau để hiện ra hộp thoại Edit Relationships

Và đây chính là mối quan hệ n-n chúng ta muốn thiết lập:

Quan hệ n-n
Quan hệ n-n

Bài trước: Mối quan hệ 1-n giữa các bảng trong Access

Bài tiếp: Toán tử đại diện Wildcard trong Access

Thứ Năm, 20/06/2019 18:25
31 👨 150