Heim >Backend-Entwicklung >PHP-Tutorial >Wie entwerfe ich eine Haupttabelle und mehrere Anhangtabellen unterschiedlichen Typs?
Zum Beispiel gibt es den folgenden Blog: Die in diesem Blog gespeicherten Daten sind relativ komplex
Es können
Filmdaten:
Musikdaten:
Produktdaten:
Bilddaten gespeichert werden :
Softwaredaten:
Um so viele Daten zu speichern, wie gestaltet man die Tabelle?
Jeder Datentyp hat seine eigenen einzigartigen Eigenschaften. Musik hat beispielsweise Texter und Komponisten und Bilder haben Pixel.
Es ist unmöglich, eine Tabelle zu erstellen und dann jedem unterschiedlichen Merkmal der Daten ein Feld zuzuweisen.
Aber wenn es in Tabellen unterteilt ist, zeichnet eine allgemeine Tabelle die grundlegenden Informationen wie Typ und ID auf, eine Tabelle für Filmdaten, eine Tabelle für Bilddaten usw. In diesem Fall, wenn alle Daten gespeichert werden sollen Herausgenommen ist es notwendig, mehrere Tabellen abzufragen, was zu Ineffizienz führt.
Gibt es eine bessere Designlösung?
Zum Beispiel gibt es den folgenden Blog: Die in diesem Blog gespeicherten Daten sind relativ komplex
Es können
Filmdaten:
Musikdaten:
Produktdaten:
Bilddaten gespeichert werden :
Softwaredaten:
Um so viele Daten zu speichern, wie gestaltet man die Tabelle?
Jeder Datentyp hat seine eigenen einzigartigen Eigenschaften. Musik hat beispielsweise Texter und Komponisten und Bilder haben Pixel.
Es ist unmöglich, eine Tabelle zu erstellen und dann jedem unterschiedlichen Merkmal der Daten ein Feld zuzuweisen.
Aber wenn es in Tabellen unterteilt ist, zeichnet eine allgemeine Tabelle die grundlegenden Informationen wie Typ und ID auf, eine Tabelle für Filmdaten, eine Tabelle für Bilddaten usw. In diesem Fall, wenn alle Daten gespeichert werden sollen Herausgenommen ist es notwendig, mehrere Tabellen abzufragen, was zu Ineffizienz führt.
Gibt es eine bessere Designlösung?
Kann in NOSQL gespeichert werden, z. B. als Mongodb-Dokument.
Bleiben Sie nicht bei Feldern.
Wenn der Betreff mysql5.7
verwendet, können Sie das Feld zum Speichern von Daten auf den Typ json
einstellen, z. B.
<code>//其他數據字段... //电影数据,音乐数据等設計爲json { “move”: { }, "music" : { } //....... } </code>
Nachdem die Tabelle geteilt wurde, muss die Logik hinter der Vorder- und Rückseite separat geschrieben werden:
Lesen Sie beim Lesen an der Rezeption nicht direkt die Daten der Haupttabelle, sondern fragen Sie die Haupttabelle über den spezifischen Typ der Anhangtabelle ab.
Der Hintergrund liest die Haupttabelleninformationen direkt, liest jedoch nicht die angehängte Tabelle. In der Hintergrundliste werden nur die Daten in der Haupttabelle angezeigt die Detailseite. Wenn Sie wirklich bestimmte Felder in jedem Anhang anzeigen müssen, lohnt es sich, etwas an Leistung zu opfern. Wenn dieses Feld außerdem allen Anhängen gemeinsam ist, sollte es auch in der Haupttabelle erwähnt werden
Sie können sich auf die 2. Etage beziehen, aber wenn Sie immer noch einen einzelnen Datenbanktyp wünschen, können Sie sich auf das Bibliotheksdesign von WordPress beziehen ... Es entwirft Attribute vom Nicht-Haupt- oder Variablentyp in Form von Schlüsseln in den sekundären Tabellenspeicher -value... Die Idee ist die gleiche wie nosql...aber es wird mithilfe einer relationalen Datenbank
implementiert
Oder Sie können das EAV-Strukturdesign verwenden. Die Tabelle speichert nur Daten und fügt eine Codeebene hinzu, um den Anforderungen verschiedener Datentypen gerecht zu werden.
Suchen Sie einfach in EAV nach der spezifischen Methode. Magento ist ein Online-Shop, der mit dieser Methode implementiert wurde.