Maison >base de données >tutoriel mysql >Comment puis-je stocker et récupérer efficacement des données de type tableau dans MySQL sans prise en charge native des tableaux ?

Comment puis-je stocker et récupérer efficacement des données de type tableau dans MySQL sans prise en charge native des tableaux ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-06 12:53:12780parcourir

How Can I Efficiently Store and Retrieve Array-like Data in MySQL Without Native Array Support?

Stockage de tableaux dans MySQL

Dans les systèmes de gestion de bases de données relationnelles comme MySQL, les tableaux ne sont pas pris en charge nativement. Par conséquent, stocker des tableaux dans une table MySQL présente un défi.

Énoncé du problème :

Considérons deux tables dans MySQL :

  • Personne de la table :

    • id (entier, principal clé)
    • nom (chaîne)
    • fruits (chaîne ou tableau de chaînes)
  • Fruit de table :

    • fruit_name (chaîne, clé primaire)
    • couleur (string)
    • price (integer)

Le but est de concevoir la colonne fruits dans la table Person afin qu'elle puisse stocker des tableaux de chaînes qui correspondent aux valeurs de la colonne fruit_name de la table Fruit.

Solution :

Pour Pour résoudre ce problème, nous devons utiliser une technique de modélisation relationnelle appelée « relations plusieurs-à-plusieurs ». Cette technique consiste à introduire une table intermédiaire appelée « table de jointure » ou « table d'association » pour relier les deux tables principales.

Dans ce cas, on peut créer une table Person_Fruit avec les colonnes suivantes :

  • person_id (clé étrangère de l'identifiant dans Person)
  • fruit_name (clé étrangère de fruit_name dans Fruit)

Ce tableau reliera chaque personne aux fruits auxquels elle est associée.

Requête SQL pour récupérer des données :

Pour récupérer les données des tableaux avec leurs fruits associés, nous pouvons utiliser ce qui suit requête :

SELECT p.*, f.*
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;

Conclusion :

En utilisant des relations plusieurs-à-plusieurs et une table intermédiaire, nous pouvons stocker et récupérer efficacement des tableaux dans MySQL, même si ils ne sont pas pris en charge nativement. Cette technique permet une récupération et une maintenance efficaces des données tout en préservant l'intégrité des données.

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