Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL

Mô hình quan hệ một-nhiều (One-to-Many Relationship Model)


Trong cơ sở dữ liệu "danh sách lớp", một giáo viên có thể dạy không hoặc nhiều lớp, trong khi một lớp chỉ được dạy bởi một (và chỉ một) giáo viên. Trong cơ sở dữ liệu "công ty", một quản lý quản lý không hoặc nhiều nhân viên, trong khi một nhân viên được quản lý bởi một (và chỉ một) quản lý. Trong cơ sở dữ liệu "bán hàng sản phẩm", một khách hàng có thể đặt nhiều đơn hàng; trong khi một đơn hàng được đặt bởi một khách hàng cụ thể. Loại quan hệ này gọi là một-nhiều.

Quan hệ một-nhiều không thể biểu diễn trong một bảng đơn. Ví dụ, trong cơ sở dữ liệu "danh sách lớp", chúng ta có thể bắt đầu với bảng Teachers lưu thông tin giáo viên (tên, phòng, điện thoại, email). Để lưu các lớp mà mỗi giáo viên dạy, ta có thể tạo cột class1, class2, class3, nhưng ngay lập tức gặp vấn đề: tạo bao nhiêu cột? Ngược lại, nếu bắt đầu với bảng Classes lưu thông tin lớp, ta có thể thêm cột lưu thông tin giáo viên (tên, phòng, điện thoại, email). Tuy nhiên, vì một giáo viên dạy nhiều lớp, dữ liệu của giáo viên sẽ bị lặp lại ở nhiều hàng trong bảng Classes.

Để hỗ trợ quan hệ một-nhiều, cần thiết kế hai bảng: ví dụ bảng Classes lưu thông tin lớp với classID là khóa chính; và bảng Teachers lưu thông tin giáo viên với teacherID là khóa chính. Sau đó tạo quan hệ một-nhiều bằng cách lưu khóa chính của bảng Teacher (teacherID) (đầu "một" hoặc bảng cha) vào bảng Classes (đầu "nhiều" hoặc bảng con).

Mô hình quan hệ một-nhiều (One-to-Many Relationship Model)

Cột teacherID trong bảng con Classes gọi là khóa ngoại (foreign key). Khóa ngoại của bảng con là khóa chính của bảng cha, dùng để tham chiếu bảng cha.