Le stockage de données hiérarchiques, telles que des listes, dans une colonne de base de données peut être un défi. Considérons un scénario dans lequel vous souhaitez stocker un objet FOO contenant une liste de fruits, et où les fruits sont stockés dans une table séparée.
Dans une base de données relationnelle normalisée, il n'est pas recommandé de stocker directement une liste dans une colonne. Cela crée des problèmes d’intégrité des données et rend difficile la maintenance et l’interrogation efficace des données. Au lieu de cela, vous devez créer une table de jonction qui relie l'objet FOO aux fruits.
Conception du schéma de base de données
Créez les tables suivantes :
Exemple de schéma :
CREATE TABLE FOO ( id int primary key not null, int1 int, int2 int, int3 int ); CREATE TABLE Fruits ( id int primary key not null, name varchar(30) ); CREATE TABLE FOOFruits ( FruitID int references Fruits (ID), FooID int references FOO(id), constraint pk_FooFruits primary key (FruitID, FooID) );
Remplir les données
Pour ajouter un fruit à la liste d'un objet FOO, insérez une ligne dans le fichier FOOFruits tableau :
INSERT FOOFruits(FooID, FruitID) SELECT 5, ID FROM Fruits WHERE name = 'Apple';
Avantages de la conception normalisée
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!