Ankündigung

Einklappen
Keine Ankündigung bisher.

Best Practice: Datenbankabfragen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • tarian
    hat ein Thema erstellt Best Practice: Datenbankabfragen.

    Best Practice: Datenbankabfragen

    Hallo,

    wollte mal fragen wie ihr das so handhabt mit den Abfragen gegen die Datenbank. Derzeit nutze ich eine selbstgeschriebene Klasse die mir die Statements baut. Doch ich erreiche je komplexer die Abfragen werden immer öfter die Grenzen des machbaren der Klasse.

    Wie macht ihr das b.z.w wie ist da die beste herangehensweise? Ich bin mittlerweile soweit das ich denke das es am sinnvollsten ist die Statements einfach so abzufeuern wie von PHP vorgesehen ohne weiteren Schnickschnack.

  • Bergtroll
    antwortet
    Ich benutze das Yii Framework und die darin enthaltene Db Abfragefunktionalität. Unterstützt wird das Active Record Pattern ebenso wie manuelle Abfragen. Datenmodelle kannst du dir per Modul aus den Db Schemata erzeugen. Wenn nix dagegen spricht, kannste dir Yii ja mal anschauen, falls du was Eigenes brauchst, könntest du Dir nur deren Db Module anschauen.

    Viele Grüße,
    Bergtroll

    Einen Kommentar schreiben:


  • mbunge
    antwortet
    Ich nutze ebenfalls PDO. Zusätzlich dem habe ich PDO durch eine CRUD Klasse und eine Active-Record (ohne ORM, erweitert CRUD) Klasse erweitert. Das erleichtert häufig auftretende DB-Abfragen.

    MfG
    Marco

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    ich denke mal, wenn man extrem Große Datenmengen hat, und die per JS sortiert, dann wird das ganze ziemlich die Seitenladezeit verlängern. Falls dennoch JS verwendet werden sollte, kann ich nur jQuery empgehlen!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Sortierung in JS ist so eine Abwägungsgeschichte:
    Entweder es dient "nur" der optionalen Verbesserung der Benutzbarkeit von einer möglichst kleinen Menge an Daten, oder es ist quasi undenkbar die Daten ohne Sortierung zu durchforsten, was vor allem bei großen Datenmengen zutreffen kann.
    Dazu noch das was bereits gesagt wurde:
    Werden die Datenmengen so groß, dass nicht alle gleichzeitig übertragen werden sollen, ist die Diskussion eh hinfällig.

    Prinzipiell halte ich GORM systeme, wie das vom APF (Verwendungsbeispiel) für sehr nützlich, sofern sie ausreichend Möglichkeiten bieten, und notfalls manuelle statements zulassen.

    Ein weiterer Vorteil den ich darin sehe:
    Man kann mit wenig Aufwand den Datenbanktyp wechseln, oder auf mysqli umschalten wenn gewünscht, wenn das System dies zulässt.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    ich bin immer noch der meinung, dass eine Seite auch komplett ohne JS funktionieren soll !!
    Kommt halt drauf an, was man unter „funktionieren“ versteht.

    Andere (ich) sind der Meinung, dass Schriftsprache sich zumindest grob an der Rechtschreibung (= Syntax der Deutschen Sprache) richten sollte.
    Naja, IMHO, sortierung per JS is net wirkli gut, für die browseroptimierung ... es muss JS aktiviert sein, damit des funktioniert ...

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    Naja, IMHO, sortierung per JS is net wirkli gut, für die browseroptimierung ... es muss JS aktiviert sein, damit des funktioniert ...

    ich bin immer noch der meinung, dass eine Seite auch komplett ohne JS funktionieren soll !!

    Einen Kommentar schreiben:


  • mquadrat
    antwortet
    Sortierung in JS geht nur, wenn auch alle Ergebnisse übertragen werden. Wird immer nur ein Teil übertragen, kann das nie richtig sortiert werden.

    ORMs können richtig eingesetzt noch mehr. Schließlich verfügen (fast) alle ORMs ja über Metadaten wie Spaltentyp, maximale Längen etc. Somit lässt sich direkt eine Basis-Validierung der Eingabedaten durchführen. Und ein ORM in Verbindung mit dem passenden Framework und Convention over Configuration ist halt einfach unschlagbar schnell im Developement.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von BlackScorp Beitrag anzeigen
    sortierung gehört ins JS meiner meinung nach.. aber hast schon recht, im grunde dienen ORMs nur für schneller ließbare zeilen , weniger tipparbeit und schnellere produktion
    Wofür sollten Sie sonst gut sein? Ist doch das gleiche wie bei Frameworks.

    Einen Kommentar schreiben:


  • BlackScorp
    antwortet
    sortierung gehört ins JS meiner meinung nach.. aber hast schon recht, im grunde dienen ORMs nur für schneller ließbare zeilen , weniger tipparbeit und schnellere produktion

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Je nach Anwendungszweck. @ Trainmaster: Na dann setz mal ein komplexes Userinterface um, mit sortierbaren Spalten, Freitext- und kombinierbaren Suchparametern etc. Du machst Dir keine Vorstellungen, wie unübersichtlich das werden kann.

    Einen Kommentar schreiben:


  • bitsnack
    antwortet
    ORM. Als fertige Lösung würde sich da Doctrine anbieten.

    Einen Kommentar schreiben:


  • Paul.Schramenko
    antwortet
    Also ich arbeite sehr gerne mit Select-Objekten. Finde das von Zend (Zend_Db_Select) eigentlich sehr gut nur leider hat das einige Bugs drin und für meinen Geschmack fehlende/unvollkommene features...
    Also hab ich mir kurzerhand eine eigene Db_Select Klasse gebaut, die mittlerweile auch in allen neuen Projekten benutze.
    Den Vorteil solcher Klassen sehe ich einfach darin, dass man dieses Objekt einfach innerhalb einer Klasse oder auch an andere Klassen weiterreichen kann, dieses dort modifiziert werden kann und man am Ende dann ein korrektes SQL-Statement hat.

    ganz wichtig ist dabei, wie mein Vorredner gesagt hat:
    Zitat von Chriz Beitrag anzeigen
    Deine Datenbankklasse sollte immer das Abfeuern von manuell gebauten Queries unterstützen

    Einen Kommentar schreiben:


  • BlackScorp
    antwortet
    meiner meinung nach , liegt der vorteil in solchen klassen, die verwendung. es sind halt ein paar zeilen weniger zu tippen zb:

    PHP-Code:
    $sql mysq_query("SELECT * FROM users");
    while(
    $row mysql_fetch_object($sql)){

    echo 
    $row->username;

    oder
    PHP-Code:
    while($row Users->fetchAll()){
    echo 
    $row->username;

    nachteil besteht darin, dass nicht wirklich nötige funktionen/methoden/klassen aufgerufen werden und somit ein wenig overhead erzeugen, bei manchen anwendungen spielt es keine rolle, bei anderen aber schon.(bezogen auf ausführungsgeschwindigkeit)

    ich persönlich benutze die einfach variante von PDO ohne einen ORM , dieses erweitere ich ein wenig damit ich nicht immer per hand escapen muss, das ist das einzige was meine klasse tut.

    Man muss ja nicht jedem trend folgen dem endbenutzer ist es ja eh im grunde schnuppe, hauptsache er hat auf der seite die funktionen die er benötigt

    MFG

    Einen Kommentar schreiben:


  • tarian
    antwortet
    Ja habe ein ähnliches Gefühl wie Trainmaster. Deswegen auch dieser Thread

    Einen Kommentar schreiben:

Lädt...
X