Hi,
Wollte mal eine Frage in die Runde stellen.
Ich muß ein größeres Projekt auf Datenbankabstraktion umstellen, und bin nun ein wenig ratlos welchen Abstraktionslayer ich denn nun dafür verwenden sollte. Denn die Einarbeitungsaufwand in die verschiedenen Klassen ist doch recht aufwendig und der Zeitaufwand für eine Umstellung auch nicht so ohne.Und in Zukunft sollte dann natürlich diese Klasse auch für andere Projekte verwendet werden. Und ich möchte dann nicht auf's falsche 'Pferd' gesetzt haben und in einigen Monaten wieder alles umstellen. Allein das Lesen der verschiedenen Dokus kostet schon unglaublich viel Zeit. Irgendwie habe ich im Netz auch noch keine objektiven und aktuellen Artikel gefunden, die sich mit der Thematik auseinander setzen. Ein Vergleich auf einer Entwicklerseite hilft naturgemäß recht wenig weiter, denn diese gehen natürlich immer zugunsten der eigenen Klasse aus.
Die DBAbstraktion muß im wesentlichen MySQL, Postgres, MsSQL und Oracle unterstützen und hiermit auch wirkliche Datenbankunabhängige Programmierung ermöglichen. Nach einen ersten Research bin ich zu folgenden Ergebnissen gekommen:
* PEAR:B
+ Guter Funktionsumfang, anscheinend auch sehr stabil, wird in vielen PEAR Paketen verwendet
- schlechtere Performance als andere Pakete
* PEAR::MDB
+ Unterstützt glaube ich eine bessere Datenbankunabhängigkeit als PEAR:B, bessere Performance, API ähnlich PEAR:B
- Wird nicht von so vielen PEAR-Paketen unterstützt, jetzt gibt es aber auch noch MDB2 das allerdings noch Beta ist, und zudem ist möglich das, das die API geändert wird. Nachträglich nochmal Code anzupassen, wäre nicht sehr toll
* AdoDB
+ Sehr viele Funktionen, anscheinend sehr stabil, wird auch in vielen großen Projekten verwendet, bessere Performance als die PEAR Pakete, Das API ändert sich nicht und ist wie in Stein gemeißelt, womit der Code auch für längere Zeit gleich bleiben kann.
- Sieht es wahrscheinlich schlecht aus wenn ich PEAR Pakete mit Datenbank verwenden möchte,
* PDO
+ Oder gleich auf PHP5 setzen und die PDO Extension verwenden, die natürlich am schnellsten ist, da nicht in PHP geschrieben. Das was ich gesehen habe sieht zwar schon recht vernüftig aus, aber das ist alles doch recht neu und ob das ausreicht und stabil ist, kann man wahrscheinlich noch nicht sagen.
Derzeitig würde ich zu PEAR::MDB tendieren, allerdings will mir nicht so recht gefallen, das ein MDB2 entwickelt wird das mit der derzeitigen API bricht
Hat wer aktuelle Erfahrungen und kann einen Tipp für eine hoffentlich richtige Entscheidung geben ?
Vielen Dank im voraus
Alfi
Wollte mal eine Frage in die Runde stellen.
Ich muß ein größeres Projekt auf Datenbankabstraktion umstellen, und bin nun ein wenig ratlos welchen Abstraktionslayer ich denn nun dafür verwenden sollte. Denn die Einarbeitungsaufwand in die verschiedenen Klassen ist doch recht aufwendig und der Zeitaufwand für eine Umstellung auch nicht so ohne.Und in Zukunft sollte dann natürlich diese Klasse auch für andere Projekte verwendet werden. Und ich möchte dann nicht auf's falsche 'Pferd' gesetzt haben und in einigen Monaten wieder alles umstellen. Allein das Lesen der verschiedenen Dokus kostet schon unglaublich viel Zeit. Irgendwie habe ich im Netz auch noch keine objektiven und aktuellen Artikel gefunden, die sich mit der Thematik auseinander setzen. Ein Vergleich auf einer Entwicklerseite hilft naturgemäß recht wenig weiter, denn diese gehen natürlich immer zugunsten der eigenen Klasse aus.
Die DBAbstraktion muß im wesentlichen MySQL, Postgres, MsSQL und Oracle unterstützen und hiermit auch wirkliche Datenbankunabhängige Programmierung ermöglichen. Nach einen ersten Research bin ich zu folgenden Ergebnissen gekommen:
* PEAR:B
+ Guter Funktionsumfang, anscheinend auch sehr stabil, wird in vielen PEAR Paketen verwendet
- schlechtere Performance als andere Pakete
* PEAR::MDB
+ Unterstützt glaube ich eine bessere Datenbankunabhängigkeit als PEAR:B, bessere Performance, API ähnlich PEAR:B
- Wird nicht von so vielen PEAR-Paketen unterstützt, jetzt gibt es aber auch noch MDB2 das allerdings noch Beta ist, und zudem ist möglich das, das die API geändert wird. Nachträglich nochmal Code anzupassen, wäre nicht sehr toll
* AdoDB
+ Sehr viele Funktionen, anscheinend sehr stabil, wird auch in vielen großen Projekten verwendet, bessere Performance als die PEAR Pakete, Das API ändert sich nicht und ist wie in Stein gemeißelt, womit der Code auch für längere Zeit gleich bleiben kann.
- Sieht es wahrscheinlich schlecht aus wenn ich PEAR Pakete mit Datenbank verwenden möchte,
* PDO
+ Oder gleich auf PHP5 setzen und die PDO Extension verwenden, die natürlich am schnellsten ist, da nicht in PHP geschrieben. Das was ich gesehen habe sieht zwar schon recht vernüftig aus, aber das ist alles doch recht neu und ob das ausreicht und stabil ist, kann man wahrscheinlich noch nicht sagen.
Derzeitig würde ich zu PEAR::MDB tendieren, allerdings will mir nicht so recht gefallen, das ein MDB2 entwickelt wird das mit der derzeitigen API bricht
Hat wer aktuelle Erfahrungen und kann einen Tipp für eine hoffentlich richtige Entscheidung geben ?
Vielen Dank im voraus
Alfi
Kommentar