Rumah > pangkalan data > tutorial mysql > Bagaimanakah Hubungan Pangkalan Data Satu-dengan-Satu, Satu-dengan-Ramai, dan Banyak-ke-Banyak Berfungsi?

Bagaimanakah Hubungan Pangkalan Data Satu-dengan-Satu, Satu-dengan-Ramai, dan Banyak-ke-Banyak Berfungsi?

Susan Sarandon
Lepaskan: 2025-01-21 06:27:11
asal
351 orang telah melayarinya

How Do One-to-One, One-to-Many, and Many-to-Many Database Relationships Work?

Menguasai Perhubungan Pangkalan Data untuk Pengurusan Data yang Cekap

Reka bentuk pangkalan data yang berkesan bergantung pada penstrukturan jadual dengan betul dan menentukan perhubungan antaranya. Tiga jenis perhubungan asas mengawal cara rekod bersambung: satu-ke-satu, satu-ke-banyak dan banyak-ke-banyak. Mari terokai setiap jenis dan pelaksanaannya.

Hubungan Satu dengan Satu

Hubungan satu dengan satu menandakan surat-menyurat satu-dengan-satu antara rekod dalam dua jadual. Ini dicapai menggunakan kunci asing dalam jadual bergantung yang merujuk kepada kunci utama jadual induk.

Contoh:

<code class="language-sql">-- Table 1: Student
CREATE TABLE Student (
    student_id INT PRIMARY KEY,
    first_name VARCHAR(255),
    last_name VARCHAR(255),
    address_id INT
);

-- Table 2: Address
CREATE TABLE Address (
    address_id INT PRIMARY KEY,
    address VARCHAR(255),
    city VARCHAR(255),
    zipcode VARCHAR(10),
    student_id INT UNIQUE
);</code>
Salin selepas log masuk

Setiap student_id secara unik memetakan ke address_id, menggambarkan pautan satu dengan satu. Perhatikan UNIQUE kekangan pada student_id dalam jadual Address.

Hubungan Satu-dengan-Banyak

Dalam perhubungan satu-dengan-banyak, satu rekod dalam satu jadual boleh dikaitkan dengan berbilang rekod dalam yang lain. Jadual bergantung menggunakan kunci asing yang merujuk kepada kunci utama jadual induk.

Contoh:

<code class="language-sql">-- Table 1: Teacher
CREATE TABLE Teacher (
    teacher_id INT PRIMARY KEY,
    first_name VARCHAR(255),
    last_name VARCHAR(255)
);

-- Table 2: Class
CREATE TABLE Class (
    class_id INT PRIMARY KEY,
    class_name VARCHAR(255),
    teacher_id INT
);</code>
Salin selepas log masuk

Seorang guru boleh mengajar berbilang kelas, tetapi setiap kelas hanya mempunyai seorang guru.

Hubungan Ramai dengan Ramai

Perhubungan banyak-ke-banyak menghubungkan berbilang rekod dalam satu jadual kepada berbilang rekod dalam satu lagi. Ini memerlukan jadual simpang yang mengandungi kunci asing daripada kedua-dua jadual.

Contoh:

<code class="language-sql">-- Table 1: Student
CREATE TABLE Student (
    student_id INT PRIMARY KEY,
    first_name VARCHAR(255),
    last_name VARCHAR(255)
);

-- Table 2: Class
CREATE TABLE Class (
    class_id INT PRIMARY KEY,
    name VARCHAR(255)
);

-- Junction Table: Student_Class
CREATE TABLE Student_Class (
    class_id INT,
    student_id INT,
    PRIMARY KEY (class_id, student_id)
);</code>
Salin selepas log masuk

Jadual Student_Class membenarkan berbilang pelajar dalam berbilang kelas.

Integriti Data: Menguatkuasakan UNIQUE kekangan pada kunci asing dalam perhubungan satu-dengan-satu dan satu-dengan-banyak adalah penting untuk mengekalkan ketekalan data.

Pertanyaan Ilustrasi:

<code class="language-sql">-- Students in a specific class:
SELECT s.student_id, s.last_name
FROM Student_Class sc
JOIN Student s ON s.student_id = sc.student_id
WHERE sc.class_id = 1;

-- Classes attended by a specific student:
SELECT c.class_id, c.name
FROM Student_Class sc
JOIN Class c ON c.class_id = sc.class_id
WHERE sc.student_id = 2;</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Hubungan Pangkalan Data Satu-dengan-Satu, Satu-dengan-Ramai, dan Banyak-ke-Banyak Berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan