Heim >Datenbank >MySQL-Tutorial >Wie kann ich ein MySQL-Entity-Attribute-Value-Schema (EAV) für einen effizienten Datenabruf umstellen?

Wie kann ich ein MySQL-Entity-Attribute-Value-Schema (EAV) für einen effizienten Datenabruf umstellen?

DDD
DDDOriginal
2024-12-08 14:24:15328Durchsuche

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

Pivoting des MySQL-Entity-Attribute-Value-Schemas

Die Notwendigkeit, ein Entity-Attribute-Value-Schema (EAV) zu Pivotieren, entsteht, wenn dies der Fall ist viele benutzerdefinierte Metadatenfelder, die nicht im Voraus bestimmt werden können. Um dies zu beheben, können Sie Tabellen erstellen, um allgemeine Metadaten, optionale Attribute und Attributwerte für Dateien zu speichern.

Berücksichtigen Sie das folgende Schema:

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)
);

Um die Daten im gewünschten Format abzurufen können Sie die Funktion GROUP_CONCAT() in MySQL nutzen:

Das obige ist der detaillierte Inhalt vonWie kann ich ein MySQL-Entity-Attribute-Value-Schema (EAV) für einen effizienten Datenabruf umstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn