phpbar.de logo

Mailinglisten-Archive

[php] Datenbankabstraktionsschichten und SQL - und PHP ;-)

[php] Datenbankabstraktionsschichten und SQL - und PHP ;-)

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Don Feb 24 16:52:30 CET 2005


Hi,

David Molineus schrieb:
>Lutz Zetzsche schrieb:
>>Wenn also eine Datenbankabstraktionsschicht in Frage käme, dann müßte
>>diese doch einen "SQL Query Builder" (wie z.B. PEAR DB_DataObject) haben
>>und nur der dürfte verwendet werden. Dann wiederum stellt sich die Frage,
>>wieweit ich mit diesem "Query Builder" dann bei komplizierten,
>>verschachtelten Datenbankabfragen über mehrere Tabellen komme...
>>
> Eine interessante Variante bietet das Propel (http://propel.phpdb.org).
> Dies ist eine Abstraktionsschicht (für PHP 5), welche noch weiter geht
> als die "normalen" Datenbankabstraktionen. So werden Objekte für die
> Datenverwaltung verwendet. Um Abfragen durchzuführen braucht man
> normallerweise kein SQL. Stattdessen verwendet man Kriterien (Criteria
> Objekte) um sie festzulegen. Auch Relationen werden unterstützt. Nur bei
> sehr komplexen Abfragen lässt sich SQL kaum vermeiden.

ich bin's noch einmal... ;-) Ich möchte Euch allen noch einmal für Eure
Beiträge danken. :-) Der Meinungsaustausch hat mir sehr bei meiner
Meinungsbildung geholfen.

Ich habe übrigens gerade noch folgenden interessanten Beitrag bei
PHPBuilder.com gefunden:

     http://www.phpbuilder.com/lists/php-db/2004091/0046.php

Mein Fazit also:

Die Datenbankabstraktionsschichten bieten tatsächlich keine völlige
Datenbankabstraktion. Das liegt u.a. an der mangelnden Kapselung von SQL,
auf die ich immer wieder gekommen bin. Hierfür braucht man zusätzlich eine
"object persistence layer", wie z.B. DB_DataObject oder Propel. Das ist
das, was ich laienhaft mit "SQL Query Builder" gemeint habe. ;-)

Wenn man also darauf Wert legt, einen möglichst hohen Grad an
Datenbankabstraktion zu erreichen, kommen z.B. PEAR DB + DB_DataObjects
und Propel + Creole in Frage. :-)

Ich hoffe, ich sehe das jetzt richtig. ;-) Die Frage ist nun, welche der
beiden Kombinationen besser ist und ob es vielleicht noch weitere
Alternativen gibt. Ich denke, ich werde mir einfach mal die beiden
genannten Kombinationen ansehen. :-)


Viele Grüße

Lutz


php::bar PHP Wiki   -   Listenarchive