|
|
|
|
|
|
|
#1 (permalink) |
|
Benutzer
Registriert seit: 03.02.2010
Beiträge: 51
PHP-Kenntnisse: Fortgeschritten ![]() |
Hi,
mir brennt da ne frage untern den fingernägeln was ist besser um logik für ein projekt abzubilden? PHP oder SQL? ein freund von mir is der übelste sql pro, macht fast nur alles damit, klappt auch alles super, aber ich als php-entwickler finde es schöne, richtigen code und funktonen zu haben. also zum sachverhalt: er prüft und validiert alles mittels sql, erzeugt alle nachrichten und was weis ich... wenn ich das machen würde, gäb es vieleicht einen select und einen insert/update, der rest würde in php abgebildert. was ist da besser? SQL ist sicher performat, aber wenn das projekt gross wird und viel last erzeugt, wäre doch php besser, da man das clustern kann oder? wie seht ihr das? |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) |
|
Moderator
Registriert seit: 18.06.2008
Beiträge: 7.187
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() |
Allein prüfen und Validieren ist schon mal problematisch. Denn die Daten müssen überprüft werden BEVOR sie in einen Datenbankquery geschrieben werden. Macht für mich auch keinen Sinn die Anwendungslogik in die Datenbank zu drücken.
|
|
|
|
|
|
#4 (permalink) |
|
Moderator
Registriert seit: 18.06.2008
Beiträge: 7.187
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() |
Ich denke es kommt immer auf den Anwendungsfall darauf an. Datum formatieren kann MySQL gerne machen, einfache Rechnungen zwischen den Spalten von mir aus auch. Sobald dann Kontrollstrukturen mit rein kommen muss man sich überlegen ob es Sinn macht.
|
|
|
|
|
|
#5 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 28.01.2010
Beiträge: 292
PHP-Kenntnisse: Fortgeschritten ![]() |
man muss es in grenzen halten. SQL hat seine aufgaben genau wie PHP
wenn man mehrere tabellen hat und von jeder einige daten braucht ist es sicher besser SQL die teile zusammenpacken zu lassen als mit php alle tabellen einzeln abzurufen. |
|
|
|
|
|
#6 (permalink) | ||
|
Erfahrener Benutzer
Registriert seit: 10.10.2009
Beiträge: 734
PHP-Kenntnisse: Fortgeschritten ![]() |
Wenn man gemäß MVC Muster vorgeht dann hat die Logik in der Datenbank nichts zu suchen.
Aber man kann es sich auch vom Namen herleiten: DATENbank, nicht Logikbank! Die Datenbank ist zum speichern und abfragen von Daten da, nicht zum Ausführen komplexer Anwendungslogik. Zitat:
Zitat:
@TE Ein schönes Beispiel ist Vor/Nachname. Ich könnte meinen Select so absetzen das ich nur das Feld "name" erhalte welches eine Kombination der Felder Vorname und Nachname darstellt. Dann brauch ich ja weniger PHP! Nachteil: Wenn ich z.B. Herr Meyer anzeigen lassen will muss ich erst wieder umständlich den Namen teilen. Wenn ich alle drei "name_komplett", "vorname", "nachname" ausgebe erzeuge ich ggf. nicht benötigten Overhead wenn "name_komplett" in meiner Ausgabe gar nicht benötigt wird. Gebe ich nur "vorname" "nachname" aus bleibt es der Anwendung überlassen was dargestellt wird (ein Social Network würde warscheinlich nur "vorname" ausgeben, eine proeffsionelle Werbeseite "herr nachname" und ein Newsletter warscheinlich "vorname nachname"). Das Ziel beim Programmieren ist es ja sich Arbeit zu ersparen. Wenn ich nun Software schreibe die nicht wiederverwendbar ist und ich für jede Anwendung alle SQL-Befehle überarbeiten muss (weil das Format der Daten nicht passt) dann mache ich definitiv etwas verkehrt.
__________________
Truthähne starren während schwerer Regenfälle oft in den Himmel und ertrinken. Geändert von Dark Guardian (10.02.2010 um 11:18 Uhr). |
||
|
|
|
|
|
#7 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 13.05.2009
Beiträge: 742
PHP-Kenntnisse: Fortgeschritten ![]() |
Stell dir mal vor was passiert, wenn du die Datenhaltung änderst
Dann steht Mr. SQL aber auf'm Schlauch.
__________________
Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin) Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe) |
|
|
|
|
|
#8 (permalink) |
|
Benutzer
Registriert seit: 03.02.2010
Beiträge: 51
PHP-Kenntnisse: Fortgeschritten ![]() |
hmm, das will er aber net verstehen XD
das mit den einfachen aufgaben ist mir klar, dafür sind ja auch die funktionen im sql supi! aber er macht sehr komplizierte views da, hat (weis net wie das heist) "event's" drin, die reagieren, sobald sich ein wert einer spalte ändert und dann ausgaben/log's erzeugen etc. ich finde, sowas sollte ins php, da dort ja wie ihr shcon sagt die logik sitzen sollte. Das mit dem validieren ist mir auch ein echter dorn im auge! selbst wenn wir es via prepared statement laufen lassen, ist nicht sichergestellt das wirklich alles sicher ist danke schonmal für eure antworten. Habt ihr noch anregungen/tipps/erfahrungswerte bezüglich der Performance, sobald es ans eingemachte geht? (wir rechnen mit ca 500-1000 aktiven Nutzern gleichzeitig zu spitzenzeiten (ich weis, is kein ding ala facebook oder wie sie alle heisen, aber für uns shcon viel |
|
|
|
|
|
#9 (permalink) | |
|
Erfahrener Benutzer
Registriert seit: 10.10.2009
Beiträge: 734
PHP-Kenntnisse: Fortgeschritten ![]() |
Zitat:
Das ist ja wieder was anderes. Wenn ich Zusammenhängende Daten auf mehrere Tabellen aufteile und sich in einer Tabelle etwas ändert ist es, je nach Fall, schon sinnvoll mit einem Trigger direkt in der zweiten Tabelle die Daten mit zu ändern. Das ist ja alles noch i.O. Aber sobald das Ändern der Daten der zweiten Tabelle an erneute Bedingungen geknüpft ist wird es schon was anderes. Um mal ein Beispiel zu nennen: Ich habe Benutzer und Gruppen. Wenn ich einen Benutzer anlege und dem per Texteingabe eine Gruppe mitgebe und diese noch nicht existiert soll sie angelegt werden. Lässt sich schön in SQL abbilden und nimmt dem Benutzer Aufwand ab. Ich lösche den letzten Benutzer aus einer Gruppe und möchte eine Option haben die Gruppe dann direkt mit zu löschen. Wohlgemerkt die OPTION. Ich kann das auch in SQL abbilden mittels Kontrollstrukturen aber dann kann ich von außerhalb keinen Einfluss mehr darauf nehmen das die Datenbank den Trigger auslöst. womit die Wiederverwertbarkeit der Anwendung abnimmt.
__________________
Truthähne starren während schwerer Regenfälle oft in den Himmel und ertrinken. Geändert von Dark Guardian (10.02.2010 um 11:48 Uhr). |
|
|
|
|
|
|
#10 (permalink) | |
|
Erfahrener Benutzer
|
Eine Diskussion ist sicherlich nett aber jeder hier hat Recht. Warum? Weil es wirklich nur auf den Anwendungsfall drauf an kommt. Aber nicht nur auf diesen. Die Themen Performance, Datenmodellierung und Aufwand sind so eng verwoben, dass man nie eine pauschale Aussage treffen kann. Wenn man also erwartet, von einem Beispiel sofort einen allgemeinen Lehrsatz herzuleiten, der wird sich noch arg wundern, wenn das in der Praxis fast nie funktioniert. Dazu sind die Einflussfaktoren zu komplex.
Zitat:
Manches mal muss man Logik ins SQL schreiben, weil du dadurch zwar den SQL etwas langsamer machst und komplizierter, dennoch aber beispielsweise die Menge der Daten auf einen bruchteil reduzieren kannst. Manches mal muss man Logik aus dem SQL rauslassen, weil die Datenbank diese Logik zu aufwändig verarbeiten wird, die Anwendung aber deutlich effizientere Algorithmen anwenden kann. Manches mal muss man sein Datenmodell anpassen und bewusst von der Normalisierung abweichen, nur um eine Anwendungslogik möglichst effizient und mit wenig Code abbilden zu können. Vieles ist hier schon andeutungsweise gefallen. Eine pauschale Antwort auf diese Dikussion gibts nicht. Ihr habt alle Recht ![]()
__________________
Entwickler aus Leidenschaft und ein Zahnrad in einem der größten Java-Projekte der Welt. Kostenlos-Webspace zu Weihnachten |
|
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Kann man HTML auch in ''Stylesheets'' unterbringen ? | WrestlingAE | HTML, Usability und Barrierefreiheit | 6 | 14.01.2010 20:08 |
| fehlerfreies formular - aber wie schneller, besser, schlanker? | fripon77 | PHP Einsteiger | 21 | 25.12.2009 23:58 |
| [Erledigt] Eval() oder str_replace() was besser? | BartTheDevil89 | PHP Einsteiger | 17 | 12.02.2009 22:30 |
| [Erledigt] Script von PHP 4 auf 5 umschreiben oder doch besser die PHP Version ändern | Technikus | Scriptbörse | 30 | 28.10.2008 19:25 |
| Was findet ihr besser? | KeinGrips | Server, Hosting und Workstations | 0 | 06.09.2008 13:12 |
| Besser: Datum mit PHP oder MySQL? | SilentSight | PHP Tipps 2008 | 16 | 21.07.2008 14:33 |
| Neuer IE7 besser als FF? | mark_gebert | Off-Topic Diskussionen | 3 | 13.11.2006 19:49 |
| Besser Programmieren (!?) | PHP Tipps 2005 | 12 | 04.05.2005 20:46 | |
| Was ist besser Photoshop 7.0 oder Fireworks von Macromedia ? | Off-Topic Diskussionen | 14 | 25.02.2005 12:21 | |
| [OT] besser eine Tabelle mit mehr Spalten oder aufteilen ? | Datenbanken | 1 | 22.10.2004 17:26 | |
| was ist besser? | PHP Tipps 2004 | 5 | 12.09.2004 16:52 | |
| [Erledigt] Vokabelabfrage per Formular / Besser in PHP oder DB ? | PHP Tipps 2004 | 5 | 21.08.2004 20:21 | |
| Welches Layout ist besser? | themonk | Off-Topic Diskussionen | 38 | 04.08.2004 16:57 |
| Ergebnisse einer Abfrage besser anordnen?? | PHP Tipps 2004 | 8 | 24.06.2004 23:14 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| logik in der datenbank, performance sql vs php, projekte für php, sql logik, sql vs php, die logik des php, abfragen logik in sql oder im code, logik in die datenbank, php effizient viele datensätze prepare statement, sql-abfragen aus der anwendungslogik in datenbank ausführen?, besser als php, besser als sql, php layout logik inhalt tipps, php besser wie html, logic sql vs php, java vs php bei sql |