Maison > base de données > tutoriel mysql > Comment dois-je stocker des listes de données associées dans une base de données relationnelle ?

Comment dois-je stocker des listes de données associées dans une base de données relationnelle ?

Linda Hamilton
Libérer: 2024-12-27 01:12:10
original
323 Les gens l'ont consulté

How Should I Store Lists of Related Data in a Relational Database?

Stockage de listes dans des colonnes de base de données : guide de conception de bases de données relationnelles normalisées

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 :

  • FOO : Colonnes entières pour l'objet FOO attributs.
  • Fruits : Colonne entière pour l'ID du fruit et une colonne de caractères pour le nom du fruit.
  • FOOFruits : Cette table de jonction relie les objets FOO aux fruits. Il contient deux colonnes : FruitID et FooID.

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)
);
Copier après la connexion

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';
Copier après la connexion

Avantages de la conception normalisée

  • Préserve l'intégrité des données en garantissant que les fruits de la liste sont valides.
  • Facilite l'interrogation et la gestion des données en les décomposant en tables plus petites et liées.
  • Offre une flexibilité pour les changements futurs dans le structure 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal