Wie sinnvoll ist es datenbankunabhängig zu programmieren?

OskarMRz

Grünschnabel
Hallo liebe Tutorials.de-Community, ich wollte von euch gerne Meinungen hören, wie sinnvoll ist es seine Projekte, die man als OpenSource stellen will, datenbankunabhängig zu programmieren. Viele der bekannten Projekte sind meist auf eine Datenbank in der Regel MySQL begrenzt. Haltet ihr es für gut, wenn das PHP-Script auch mit anderen Datenbanken funktionieren kann, zum Beispiel: MSSQL, Firebird, Oracle, Postgres, Informix, Interbase, IBM DB2. Wenn es sinnvoll ist für andere Datenbanken zu programmieren, welche sind dann am sinnvollsten, wenn es um Webanwendungen geht? MySQL ist zwar am weitesten verbreitet, aber wie sieht es mit anderen RDBMS aus?
 
Interoperabilität ist gut, allerdings nur, wenn der Quellcode dadurch nicht zu kompliziert wird. Bei den unterschiedlichen Datenbanksystemen gibt es zum Glück eine Gemeinsamkeit, nämlich die Abfragesprache SQL. Für Optimierungen könnte da allerdings aufgrund der Detailunterschiede dann doch etwas wenig Platz sein. Da ist es dann vielleicht doch besser nur auf ein Datenbanksystem zu fokussieren und zu optimieren.
 
Die Unterstützung mehrer DBMS halte ich für sehr sinnvoll.
Prinzipiell würde ich dabei so vorgehen, dass pro unterstütztem DBMS ein eigenes Repository entsteht, dass an die Eigenheiten des entsprechenden DBMS angepasst ist. Dieses sollte ein Interface implementieren, so dass man nach oben hin eine Einheit hat.
Den Quellcode so zu schreiben, dass er für alle DBMS nutzbar ist, ist nicht sinnvoll, da das meist zu Performance-Verlusten, Unübersichtlichkeit, Nebeneffekten schon bei kleinsten Änderungen, ... führen kann.
Außerdem ist dann der Testaufwand geringen, da man pro DBMS nur die einzelnen Repository testen muss.
 
Vielen Dank für die ersten Antworten soweit. Den Vorschlag mit der Konzentration auf eine Datenbank finde ich sehr sinnvoll. ;) Den 2. Vorschlag bezüglich verschiedener Repositorys finde ich auch ganz interessant. Habt ihr selbst schon Erfahrungen hinsichtlich Unterstüztung mehrer Datenbanken? Ich habe selbst schon danach rechechiert und die Lösunugen von MDB2, PEAR:DB(outofthedate), AdoDBLite finde ich alle zu überladen. ;) Ich bin gespannt, wie sich weiter das Thema entwickelt.
 
Zurück