Maison >base de données >tutoriel mysql >Comment stocker efficacement des listes de valeurs dans une base de données relationnelle ?

Comment stocker efficacement des listes de valeurs dans une base de données relationnelle ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-29 21:50:10748parcourir

How to Effectively Store Lists of Values in a Relational Database?

Stockage de listes dans des colonnes de base de données : approche de base de données relationnelle

Lorsque nous sommes confrontés à la tâche de stocker une liste de valeurs dans une colonne de base de données, il est crucial de considérer les contraintes d'une base de données relationnelle normalisée.

Une simple liste, comme celle décrite dans la question, introduit des anomalies et redondance des données dans un système relationnel. Pour résoudre ce problème, il est recommandé d'établir une table de jonction.

Approche de la table de jonction

Une table de jonction connecte deux tables existantes en créant une nouvelle table composée d'une colonne pour l'identifiant unique (ID) de chaque table et un tuple de clé primaire qui identifie de manière unique chaque ligne. Cette approche permet l'inclusion d'un champ référencé de la table liste et l'établissement d'une relation plusieurs-à-plusieurs entre les deux tables.

Par exemple, dans l'exemple d'objet FOO :

  1. Créez la table FOO avec des colonnes pour les trois entiers et une clé de substitution.
  2. Créez la table Fruits avec des colonnes pour le fruit noms et une clé de substitution.
  3. Créez la table de jonction FOOFruits avec des colonnes pour FruitID et FooID, formant la clé primaire.

Exemple de requête

Pour ajouter Apple à la liste des fruits pour l'objet FOO avec ID 5 :

INSERT INTO FOOFruits (FooID, FruitID)
SELECT 5, ID FROM Fruits WHERE name = 'Apple'

Cette requête sélectionne FruitID et FooID dans la table Fruits où le nom est « Apple » et les insère dans la table FOOFruits, établissant la relation entre l'objet FOO et le fruit Apple.

En adhérant à cette approche, vous pouvez stocker efficacement les données de liste dans une base de données relationnelle tout en préservant l'intégrité des données et en évitant les anomalies, garantissant ainsi l'exactitude et la cohérence de vos données sur temps.

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