Maison >base de données >tutoriel mysql >Comment puis-je stocker et récupérer efficacement des tableaux de données dans MySQL à l'aide de plusieurs tables ?

Comment puis-je stocker et récupérer efficacement des tableaux de données dans MySQL à l'aide de plusieurs tables ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-05 19:54:11467parcourir

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

Stockage de tableaux dans MySQL : une solution multi-tables

Dans MySQL, stocker directement des tableaux n'est pas simple en raison de l'absence de tableau type de données. Pour stocker des tableaux de chaînes faisant référence à des valeurs d'une autre table, une approche de conception multi-tables est couramment utilisée.

Conception de table

Créez deux tables : Personne et Fruit. Person contient le nom et une colonne de fruits qui stockera les données du tableau. Le fruit contient le nom du fruit, la couleur et le prix.

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
);

Stockage des données du tableau

Pour stocker un tableau de noms de fruits dans la colonne des fruits, vous pouvez utiliser un liste séparée par des virgules. Par exemple :

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

Récupération des données du tableau

Pour récupérer le tableau des noms de fruits d'une personne, utilisez une requête JOIN pour lier les tables Personne et Fruit en fonction sur les valeurs 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;

Cette requête renverra le nom de la personne et les noms de fruits qui lui sont associés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn