Quan hệ 1 1 trong sql là một trong các quan hệ cơ bản nhất của cơ sở dữ liệu. Bài viết này hãy cùng SmartData tìm hiểu ý nghĩa và tác dụng của nó.
Quan hệ 1 1 là gì?
Khi một bản ghi trong bảng chỉ liên quan đến một bản ghi trong bảng khác và ngược lại, chúng ta nói rằng đó là mối quan hệ 1-1. Mối quan hệ này có thể được tạo bằng cách sử dụng các ràng buộc Khóa chính-Khóa ngoài duy nhất.
Ví dụ, một chồng chỉ được có một vợ và ngược lại, một vợ cũng chỉ được có một người chồng duy nhất
Ý nghĩa của quan hệ 1 1
Về mặt logic, quan hệ 1 1 trong cơ sở dữ liệu giúp bạn tối ưu thiết kế, đảm bảo các tiêu chuẩn chuẩn hóa của database như ( 1NF, 2NF, 3NF). Ngoài ra quan hệ 1 1 cũng là một cách để người thiết kế mô hình hóa các đói tượng của thế giới thực vào các đối tượng trong cơ sở dữ liệu.
Ví dụ quan hệ 1 1 trong Sql
Giả sử ta có 2 bảng
- Bảng PERSON: Chứa thông tin cá nhân
- Bảng PASSPORT_DETAIL: Chứa thông tin hộ chiếu của cá nhân trong bảng PERSON
Cú pháp tạo 2 bảng kia trong MYSQL như sau:
CREATE TABLE PERSON( ID INT AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(255) ); CREATE TABLE PASSPORT_DETAIL( ID INT AUTO_INCREMENT PRIMARY KEY, PASSPORT_NUMBER INTEGER, FOREIGN KEY (USER_ID) REFERENCES PERSON(ID) );
Bảng PERSON được coi là có quan hệ 1 1 với bảng PASSPORT_DETAIL bởi vì mỗi bản ghi trên bảng PERSON chỉ liên kết với 1 bản ghi trên bảng PASSPORT_DETAIL
Để lấy ra được thông tin passport của một người bất kì nào đó trong bảng PERSON ta chỉ cần truy vấn đơn giản như sau:
SELECT P.ID, P.NAME, PD.PASSPORT_NUMBER FROM PERSON P INNER JOIN PASSPORT_DETAIL PD ON P.ID = PD.USER_ID
Dữ liệu nhận được sẽ như sau:
+----+------------------------+--------------------+ | ID | NAME | PASSPORT_NUMBER | +----+------------------------+--------------------+ | 1 | Nguyễn Ngọc Ngạn | ngannnn1@gmail.com | | 2 | Hà Quỳnh Anh | haquynha@gmail.com | +----+------------------------+--------------------+
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa: