Maison >base de données >tutoriel mysql >Comment stocker efficacement des listes de valeurs dans une base de données relationnelle ?
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 :
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!