Maison >base de données >tutoriel mysql >Comment puis-je faire pivoter un schéma MySQL Entity-Attribute-Value (EAV) pour une récupération efficace des données ?

Comment puis-je faire pivoter un schéma MySQL Entity-Attribute-Value (EAV) pour une récupération efficace des données ?

DDD
DDDoriginal
2024-12-08 14:24:15328parcourir

How Can I Pivot a MySQL Entity-Attribute-Value (EAV) Schema for Efficient Data Retrieval?

Pivotement du schéma MySQL Entity-Attribute-Value

La nécessité de faire pivoter un schéma d'entité-attribut-valeur (EAV) survient lorsqu'il y a de nombreux champs de métadonnées personnalisés qui ne peuvent pas être déterminés au préalable. Pour résoudre ce problème, vous pouvez créer des tables pour stocker les métadonnées communes, les attributs facultatifs et les valeurs d'attribut des fichiers.

Considérez le schéma suivant :

CREATE TABLE FileBase (
    id VARCHAR(32) PRIMARY KEY,
    name VARCHAR(255) UNIQUE NOT NULL,
    title VARCHAR(255),
    author VARCHAR(255),
    created DATETIME NOT NULL,
);

CREATE TABLE Attributes (
    id VARCHAR(32) PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    type VARCHAR(255) NOT NULL
);

CREATE TABLE FileAttributes (
    sNo INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    fileId VARCHAR(32) NOT NULL,
    attributeId VARCHAR(32) NOT NULL,
    attributeValue VARCHAR(255) NOT NULL,
    FOREIGN KEY fileId REFERENCES FileBase (id),
    FOREIGN KEY attributeId REFERENCES Attributes (id)
);

Pour récupérer les données dans le format souhaité , vous pouvez exploiter la fonction GROUP_CONCAT() dans MySQL :

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