Ich bin zwar gerade ziemlich verwirrt, versuche aber trotzdem mal mein anliegen einigermaßen auf den Punkt zu bringen.
Ich versuche gerade ein eigenes kleines Framework zu schreiben dass mir einige standartabläufe abnimmt. Nun bin ich an dem Punkt angekommen wo ich mir überlegt habe ob es nicht Sinn macht für die Datenbank ebenfalls einige standartabläufe zu automatisieren. Zum Beispiel die komplizierteren Selects in Methoden zusammenzufassen. Doch wie baut man sowas auf?
Nun zerbreche ich mir darüber schon seit Tagen den Kopf. Wie man sowas aufbaut ohne wieder irgendwann wieder in einer sackgasse zu landen und alles wegwerfen zu müssen (Hatte schonmal eine DB-Klasse die aber irgendwann zu komplex und dadurch aufwendiger als der SQL-String selbst wurde).
Jetzt habe ich mir folgendes überlegt:
1. Erstellung einer klasse die sich um die verbindung und kommunikation zur DB kümmert (PDO-Object, Select-/Insert-Methode etc.).
Soweit alles ok.
2. Für jede DB-Tabelle eine eigene Klasse die die abgefragten Daten auffangen kann und somit einen schlüßigen Zugriff im PHP-Code ermöglicht.
Soweit ist für mich auch noch alles schlüßig, da aber jeder Benutzer mehrere Rechte haben kann, gibt es natürlich auch eine benutzer_zu_benutzerrechte tabelle die eine n:m beziehung herstellt. Jetzt währe aber folgende klasse aus meiner sicht vollkommen sinnfrei:
Jetzt überlege ich hin und her und komme auf keinen grünen zweig. Soll ich die Klasse benutzer_zu_benutzerrechte weglassen und stattdessen lieber eine weiteres attribut in der Klasse Benutzer hinzufügen dass dann mit instanzen der Klasse benutzerrechte befüllt wird?
Was wenn es dann noch weitere n:m verbindungen nach benutzerrechte gibt?
Daher die Grundsatzfrage, wie stellt man ein DB-Modell sinnvoll in OOP dar? Gibt es dazu Tutorials/lektüren?
Gruß
Squall
Ich versuche gerade ein eigenes kleines Framework zu schreiben dass mir einige standartabläufe abnimmt. Nun bin ich an dem Punkt angekommen wo ich mir überlegt habe ob es nicht Sinn macht für die Datenbank ebenfalls einige standartabläufe zu automatisieren. Zum Beispiel die komplizierteren Selects in Methoden zusammenzufassen. Doch wie baut man sowas auf?
Nun zerbreche ich mir darüber schon seit Tagen den Kopf. Wie man sowas aufbaut ohne wieder irgendwann wieder in einer sackgasse zu landen und alles wegwerfen zu müssen (Hatte schonmal eine DB-Klasse die aber irgendwann zu komplex und dadurch aufwendiger als der SQL-String selbst wurde).
Jetzt habe ich mir folgendes überlegt:
1. Erstellung einer klasse die sich um die verbindung und kommunikation zur DB kümmert (PDO-Object, Select-/Insert-Methode etc.).
Soweit alles ok.
2. Für jede DB-Tabelle eine eigene Klasse die die abgefragten Daten auffangen kann und somit einen schlüßigen Zugriff im PHP-Code ermöglicht.
PHP-Code:
class benutzer {
private $id;
private $vorname;
private $nachname;
}
class benutzerrechte {
private $id;
private $bezeichnung;
private $beschreibung;
}
PHP-Code:
class benutzer_zu_benutzerrechte {
private $benutzer_id;
private $benutzerrechte_id;
}
PHP-Code:
class benutzer {
private $id;
private $vorname;
private $nachname;
private $benutzerrechte = array();
}
Daher die Grundsatzfrage, wie stellt man ein DB-Modell sinnvoll in OOP dar? Gibt es dazu Tutorials/lektüren?
Gruß
Squall
Kommentar