php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.12.2011, 21:37  
Neuer Benutzer
 
Registriert seit: 21.02.2009
Beiträge: 28
hawkeye78 befindet sich auf einem aufstrebenden Ast
Standard Verständnisfrage zu MVC pro Tabelle genau ein Modell?

Hallo,

ich bastele gerade an meinem eigenen und ganzen privaten Framework das auf dem Konzept von MVC basiert. Ich hatte mich dabei zum einen für ein eigenes Framework entschieden weil ich es als Konzept von einem guten Freund zur Verfügung gestellt bekommen habe und zum anderen weil ich denke das hierbei der lerneffekt größer ist als ein bereits fertiges Produkt zu nehmen.
Allerdings habe ich nun eine Frage, das Model-View-Controller-Konzept sieht ja eigentlich vor das jede (Datenbank-)Tabelle genau über ein Modell erreicht wird. Nun habe ich aber bei dem Projekt was ich versuche damit umzusetzen Abfragen die über insgesamt 5 Tabellen gehen. Was für mich ja bedeutet ich müßte in einem Modell vier weitere Modell-Aufrufe machen und diese dann per PHP zusammenfügen. Nun führt bei mir dieser Punkt zu leichten Zweifel ob das wirklich performant ist und ob es nicht clever ist, den von mir geschriebenen Datenbankwrapper so zu erweitern das er auch über mehrere Tabellen Abfragen ausführen kann, was aber im Gegensatz zu der MVC-Idee steht.
Da ich, wie oben beschrieben, noch in der lernphase bin, und auch keine Ahnung habe wie andere Frameworks das ganze umsetzen wollte ich mich hier mal umhören und nachfragen ob es wirklich geschickt ist, jede Tabelle genau über ein Modell abzufragen oder ob es bei anderen Frameworks auch etwas aufgeweicht wird.
Ich würde mich über eine oder andere Antwort freuen, da das ganze zwar "nur" ein Wochenende/Feierabend Projekt ist, ich aber gerne dabei etwas lernen würde und da macht es in meinen Augen am meisten Sinn wenn man das vorgehen gleich versteht / umsetzt.
Viele Grüsse
Dan


PS
Ich hoffe ich bin im richtigen Unterforum gelandet, falls ja möchte ich mich hier schon einmal entschuldigen und einen Moderator bitten die Frage ins richtige Forum zu verschieben...
hawkeye78 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.12.2011, 21:44  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Zitat:
Zitat von hawkeye78 Beitrag anzeigen
ob es nicht clever ist, den von mir geschriebenen Datenbankwrapper so zu erweitern das er auch über mehrere Tabellen Abfragen ausführen kann, was aber im Gegensatz zu der MVC-Idee steht.
Wie kommst du darauf, dass das im Gegensatz zum MVC-Gedanken steht? Es besteht rein gar kein Zusammenhang zwischen Modell und Tabellen.
Trainmaster ist offline   Mit Zitat antworten
Alt 12.12.2011, 21:49  
Neuer Benutzer
 
Registriert seit: 21.02.2009
Beiträge: 28
hawkeye78 befindet sich auf einem aufstrebenden Ast
Standard

vielleicht habe ich da schon das Konzept falsch verstanden aber mein Verständnis für das MVC-Konzept sieht im moment so aus

Modell
Stellt die Methoden zur Abfrage der Datenbank zur Verfügung und zwar pro Tabelle eine Modell

Controller
Fragt die Modelle ab um an die Daten heran zu kommen und bereitet sie auf

View
erhält die Daten vom Controller und macht daraus gültigen HTML-Code

Vielleicht ist daran etwas falsch. Aber das war meine bisherige denkweise und da jedes Modell genau auf eine Datenbank-Tabelle zugreift muss der Controller halt die Abfrage über mehrere Modelle laufen lassen (ok vielleicht habe ich im ersten Beitrag auch den falschen Terminus benutzt...)
hawkeye78 ist offline   Mit Zitat antworten
Alt 12.12.2011, 22:11  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Ich sehe schon, du bist sehr fixiert auf die ein Modell - eine Tabelle Beziehung. Woher rührt diese Überzeugung?

Grundlegend kann gesagt werden: Ein Modell repräsentiert Daten. Woher diese Daten stammen, bestimmst allein du. Ob eine oder mehrere Datenbank-Tabellen, Dateien, Session u.ä.! Bitte vergesse ganz schnell, dass ein Modell zwigend an eine Datenbank-Tabelle gekoppelt ist.
Trainmaster ist offline   Mit Zitat antworten
Alt 12.12.2011, 22:32  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Befasse dich mal mit dem "table data gateway"-, "row data gateway"- bzw. "data mapper"-Pattern oder auch mit dem "domain model"-Pattern. Die Literatur kennt hierzu ausführliche Beschreibungen der einzelnen Vorgehensweisen und es ich nicht notwendig, ein Kompendium hier zu rezitieren.

Ich schließe mich hinsichtlich der Präsentation dahingehend an, dass ein Model im Sinne eines Domänen-Modells auch durch eine Struktur mehrere Klassen-Instanzen und deren Beziehungen repräsentiert werden kann.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 12.12.2011, 23:15  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Vielleicht verwechselst Du (oder Dein guter Freund) hier MVC auch mit ORM.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.12.2011, 06:06  
Neuer Benutzer
 
Registriert seit: 21.02.2009
Beiträge: 28
hawkeye78 befindet sich auf einem aufstrebenden Ast
Standard

Ich glaube meine Fixierung auf ein Modell resultiert vor allem daraus, das mein Wissen in dieser Beziehung sehr begrenzt ist. Vielleicht sollte ich einfach noch mal einen Schritt zurück gehen und mir darüber klar werden, welche Design Patterns es gibt und welches davon für mich am besten ist...

Nachtrag:
Ich noch einmal.... ich habe mich gerade mal mit Hilfe von Google ein bißchen umgeschaut und bin bei dem Wikipedia-Artikel: "Ruby on Rails"[1] (ok es ist nicht PHP. aber das ist ja bei dieser Diskussion, sekundär) über folgende Formulierung gestolpert:

Zitat:
Dabei handelt es sich um eine ORM-Schicht, welche eine Klasse auf eine Tabelle und ein Attribut auf eine Spalte abbildet
Darum bin ich jetzt immer noch ein klein bißchen verwirrt ob meine erste Idee, das jede Modell-Klasse genau eine Tabelle abdeckt vielleicht doch nicht sooo falsch war

[1] http://de.wikipedia.org/wiki/Ruby_on_Rails

Geändert von hawkeye78 (13.12.2011 um 06:21 Uhr).
hawkeye78 ist offline   Mit Zitat antworten
Alt 13.12.2011, 09:00  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Ich sag mal: Kann man so machen, muss man aber nicht. Wenn man keinen DataMapper verwendet, sondern Active Record macht es Sinn, dass eine Modellklasse einer Tabelle entspricht. Ich handhabe das meist auch so, aber Pflicht ist es keine.

Gerade bei großen Anwendungen kommt man schnell an einen Punkt, an dem man eine Zusammenfassung von Daten aus mehreren Quellen braucht.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 13.12.2011, 09:58  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Zitat:
Zitat von hawkeye78 Beitrag anzeigen
Darum bin ich jetzt immer noch ein klein bißchen verwirrt ob meine erste Idee, das jede Modell-Klasse genau eine Tabelle abdeckt vielleicht doch nicht sooo falsch war
Sie ist es dennoch, weil du explizit auf das MVC-Konzept eingegangen bist. Für ein anderes Entwurfsmuster mag deine Überlegung zu treffen, nicht aber, und ich wiederhole das gerne noch einmal, um das MVC-Konzept im Allgemeinen zu beschreiben.
Trainmaster ist offline   Mit Zitat antworten
Alt 14.12.2011, 05:17  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Als Randbemerkung sei auch erwähnt: MVC ist ein Pattern, zu Deutsch: eine Vorlage, Es ist nicht Zwingend gesagt das ein einziges Model nur auf eine Tabelle zugreift.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bedingte Auswahl aus 2ter Tabelle milliway42 Datenbanken 1 24.11.2011 18:56
Join auf einen Wertebereich der 3. Tabelle red-head Datenbanken 5 09.11.2011 11:05
[Erledigt] Zwei oder eine Tabelle für die Benutzer einer Webapplikation ? dreamcatcher Datenbanken 5 01.09.2011 23:12
Daten aus Tabelle 1 in Tabelle 2 schreiben Orakel PHP Einsteiger 2 21.07.2011 19:01
Ausgabe Tabellen dynamisch aus Tabelleninhalt erstellen titus81 Datenbanken 5 20.05.2011 19:58
Eine Tabelle, oder lieber mit zweite Tabelle arbeiten und diese Joinen? freshjayson Datenbanken 3 11.04.2011 13:04
Bilder in Tabelle einfügen Mysql oder direkt?! DKuhn PHP Tipps 2009 3 30.09.2009 10:14
tabelle 2 in tabelle 1 updaten steffen_dk Datenbanken 11 04.07.2009 15:04
[Erledigt] Problem mit mySQL Datenbanken 7 27.09.2005 12:06
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
tabelle in tabelle ohne aussenrand noskule HTML, Usability und Barrierefreiheit 6 25.08.2005 14:17
spielplan, und Tabelle erstellen alias_zappler PHP Tipps 2005-2 3 01.08.2005 00:25
[Erledigt] Tabelle in Tabelle automatisch anpassen HTML, Usability und Barrierefreiheit 3 04.11.2004 21:37
Sortieren anhand einer zweiten Tabelle PHP Tipps 2004 6 20.09.2004 09:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mvc aus tabelle model controller, mvc tabellen, mvc model tabellen, php klasse verwaltung zuordnungstabelle, mvc 3 tabelle datenbank controller, mvc tabellen = modell?, mvc 3 tabellen ordnen, mvc model zwei tabellen, php model aus tabelle, datenbank methode pro tabelle php, model view controller \mvc basiert\, mvc mehrere datenbanken in einem model php, mvc pattern mehrere modelle für eine klasse php, mvc model 2 tabellen, php mvc model tabelle, php class model für zuordnungstabelle, mvcpro php, mvc mehrere tabellen join, php model mehrere tabellen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum