Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyimpan dan Mendapatkan Susunan Data dengan Cekap dalam MySQL Menggunakan Berbilang Jadual?

Bagaimanakah Saya Boleh Menyimpan dan Mendapatkan Susunan Data dengan Cekap dalam MySQL Menggunakan Berbilang Jadual?

Susan Sarandon
Susan Sarandonasal
2024-12-05 19:54:11465semak imbas

How Can I Efficiently Store and Retrieve Arrays of Data in MySQL Using Multiple Tables?

Menyimpan Tatasusunan dalam MySQL: Penyelesaian Pelbagai Jadual

Dalam MySQL, menyimpan tatasusunan secara langsung tidak mudah kerana ketiadaan tatasusunan jenis data. Untuk menyimpan tatasusunan rentetan yang merujuk nilai daripada jadual lain, pendekatan reka bentuk berbilang jadual biasanya digunakan.

Reka Bentuk Jadual

Buat dua jadual: Orang dan Buah. Orang mengandungi nama dan lajur buah-buahan yang akan menyimpan data tatasusunan. Buah mengandungi nama_buah, warna dan harga.

CREATE TABLE Person (
    `id` INT NOT NULL PRIMARY KEY,
    `name` VARCHAR(50),
    `fruits` VARCHAR(255)
);

CREATE TABLE Fruit (
    `fruit_name` VARCHAR(20) NOT NULL PRIMARY KEY,
    `color` VARCHAR(20),
    `price` INT
);

Menyimpan Data Tatasusunan

Untuk menyimpan tatasusunan nama buah-buahan dalam lajur buah-buahan, anda boleh menggunakan senarai dipisahkan koma. Contohnya:

INSERT INTO Person (`name`, `fruits`) VALUES ('John Doe', 'apple,banana,orange');

Mendapatkan Data Tatasusunan

Untuk mendapatkan tatasusunan nama buah bagi seseorang, gunakan pertanyaan JOIN untuk memautkan jadual Orang dan Buah berdasarkan pada nilai fruit_name.

SELECT p.name, f.fruit_name
FROM Person p
INNER JOIN Person_Fruit pf
ON pf.person_id = p.id
INNER JOIN Fruit f
ON f.fruit_name = pf.fruit_name;

Pertanyaan ini akan mengembalikan nama orang dan nama buah yang dikaitkan dengan mereka.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyimpan dan Mendapatkan Susunan Data dengan Cekap dalam MySQL Menggunakan Berbilang Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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