2011-01-04 17 views
3

Ich fragte mich, ob es irgendwelche vorgefertigten Möglichkeiten gäbe, ein EAV-Designmuster in Zend Framework zu implementieren?Zend Framework EAV Implementierung

Ich versuche zu entscheiden, ob ich meine eigene Implementierung erstellen oder eine verwenden soll, die bereits erstellt wurde.

Antwort

2

Use Doctrine mit MongoDB Document Mapper http://www.doctrine-project.org/

Zend Framework 2.0 wurde mit Composer für Lehre automatisiert installieren, so bedeutet dies Zend Menschen bieten diese auch als Option neben dem eingebauten in Zend_Db.

Die Verwendung von EAV auf einem dokumentenorientierten NoSQL-Datenbanksystem wie MongoDB oder CouchDB ist viel besser als die Implementierung eines Hacks gegenüber traditionellen relationalen Datenbanken wie MySql (etwas, was Magento getan hat). NoSQL-Datenbanken können Daten vom Typ Sparse-Matrix besser implementieren.

1

Digitalus CMS verwendet das EAV-Muster und basiert auf MySQL. Es stimmt, dass Mongo oder Couch besser geeignet sind, aber MySQL ist oft eine einfachere Wahl, da Sie nichts installieren müssen. Ich habe versucht, SimpleDB zu verwenden, aber die lokale MySQL-Version ist 4x schneller. SQLite funktioniert auch sehr gut.

Es gibt viele Gegner dieses Ansatzes, und ihre Ansprüche sind weitgehend begründet. Jedes Mal, wenn ich in der Lage sein muss, Daten abzufragen, verwende ich einen relationalen Standardansatz, aber EAV glänzt, wenn Sie mit sehr locker strukturierten Daten wie dem Inhalt einer Webseite arbeiten.

Digitalus verwendet einen Ansatz, bei dem das Basis-CMS-Elementmodell für die gesamte EAV-Logik zuständig ist. Dieses Modell verarbeitet auch einen Write-Through-Cache, so dass das System Inhalte letztlich so schnell wie ein flaches Dateisystem bereitstellt.

Alle Puristen sind wahrscheinlich technisch korrekt, aber schnell und einfach haben einen Platz in meiner Toolbox.