Mailinglisten-Archive |
Hi Norbert, Norbert Pfeiffer schrieb: > - Warum soll man einem Programmierer verbieten wollen, > dass er eigene, optimierte Querys in seinem Code > verwendet ? solange die SQL-Befehle nicht auf ein Datenbanksystem optimiert sind, also den kleinsten gemeinsamen Nenner verkörpern, ist das ja ok. Aber wenn diese Optimierung dann den Sinn der Abstraktionsschicht aushebelt, dann ist das nicht mehr richtig. > - Wie soll ein "SQL Query Builder" aussehen, der mir > aus einer Liste mit Geburtdaten die Geburtstage der > naechsten 2 Wochen, mit der Bedingung, dass auch ein > Jahreswechsel verkraftet wird, anzeigt ? Wenn die Datenbanktabelle richtig aufgebaut ist, dann ist das der ideale Anwendungsfall für einen Abfragegenerator. ;-) > - Oder denk mal nur an das leidige Tree-Problem. > Wie will man dem "SQL Query Builder" verklickern > dass er ohne Rekursionen auskommen soll/muss ? Z.B. Nested Sets verwenden, also auch wieder eine Frage des Datenbankdesigns. Oder im Extremfall eben eine Rekursion um den Abfragegenerator herum. > - Bei einem ernsthaften Abstraktionslayer muesste man > z.B. komfortabele Datenbanken wie Oracle/PostgeSQL > in ihrer ganzen Funktionalitaet fuer MySQL in PHP > nachbilden. Wer soll das coden ... ;-) Sowas gibt es z.B. im Java-Bereich: TopLink. Das Bildet die relationale Datenbank komplett über Objekte ab. Die Abfragen werden indirekt über eine objektorientierte API erstellt, d.h. TOPLink baut die SQL-Befehle daraufhin im Hintergrund passend für die darunterliegende Datenbank zusammen. Mir würde aber viel weniger reichen. Also für meine Ansprüche würde schon einmal genügen, wenn so eine Abstraktionsschicht alles abstrahiert, was alle von ihr unterstützten Datenbanken können. Auf die Emulation von Funktionen, die einige Datenbanken beherrschen, andere aber nicht, könnte man ja erst einmal verzichten bzw. hier dann eben tatsächlich mal eine eigene Emulation bauen. :-) > Kurz, > ich halte Abstraktionslayer und "SQL Query Builder" > fuer ein schoenes Diskussionsthema, solange niemand > auf die Idee kommt, sie in der Praxis einzusetzen. Darüber kann man diskutieren. Nicht alles was theoretisch die reine Lehre ist, sollte man praktisch tun. Das Ziel sollte aber sein, eine Abstraktionsschicht, wenn man sie schon einsetzt, auch so zu nutzen, daß ihr Einsatz nicht sinnentleert wird. :-) Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive