dedlfix: Was muss eine Datenbankklasse können?

Beitrag lesen

echo $begrüßung;

Wieviele Klassen willst Du denn sonst für eine typische Webanwendung erstellen,

Nur die notwendigen für die fachliche Logik. Für den Rest gibt es zur Genüge Frameworks.

nur um später in der "Anzeigeklasse" damit z.B. ein <Select>-Element erzeugen zu können, bei Du ja die ausgewählten und die auswählbaren Optionen benötigst. Diese Daten müssen von der Datenbankklasse sofort bei Abfrage bereitgestellt werden und nicht erst später angefordert...

Du schriebst in dem Stichpunkt "Anzeige in HTML". Das verleitete mich zu der Annahme, dass die DB-Klasse gleich für das Formular oder Teile davon fertige Ergebnisse liefern soll. Du meinst stattdessen, dass sie zu den Feldern nur allgemein den Wertebereich mitliefern soll. - Kann man machen, wenn man den Aufwand treiben will, jedes Mal die Datenbank nach solchen Metadaten zu befragen. Metadaten sind aber nicht an die Datenbankverbindung sondern an die Tabellen gebunden, also an das Datenmodell. Es wäre also Aufgabe eines Tabellenadapters, solche Metadaten zu besorgen, oder besser: gleich zu wissen.

Dies führt dann auch zu der Forderung, dass die Datenbanklasse auf Änderungen im Tabellendesign reagieren können muss, denn sie muss dieses ja nur abfragen und neu aufbereiten, wenn es sich geändert hat, bzw. die Arbeit verweigern, wenn Du gegen Automatismus bist.

Ich bin für eine performante Mischung aus Automatismus und fest kodierter Logik. Wenn ein Fehler auftritt darf die DB-Klasse ihn gern melden. Sie soll robust sein, muss sich aber nicht dem Programmierer gegenüber in Watte gepackt präsentieren.

echo "$verabschiedung $name";