Sql query auslagern?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • lalaland
    replied
    Originally posted by AmicaNoctis View Post
    Das klingt nicht sinnvoll. Am besten du erstellst erst einmal eine Klasse für jede Art von Ding in deiner Datenbank, z. B. Address, User, Product, Order, ... und baust die zugehörigen Getter und Setter ein, z. B. Address->getStreet/setStreet(), User->getAddress()
    Also erst mal Kontainerkassen erstellen sehe ich das richtig. In diese werden die Daten eingespeißt und diese geben sie auch wieder zurück. Alles klar.

    Leave a comment:


  • AmicaNoctis
    replied
    Hm, da PHP-Anwendungen meist sehr kurzlebig sind, habe ich bisher keinen Nutzen darin gesehen, das Repository Pattern zu benutzen, aber danke für den Denkanstoß.

    Leave a comment:


  • h3ll
    replied
    Originally posted by lalaland View Post
    Hm... Das werde dann aber viele Klassen oO. Na ja aber stimmt schon dann lassen sich die Abfragen für die einzelnen Tabellen leichter erweitern, wenn noch abfragen dazu kommen.
    Es war auch nie das Ziel möglichst viel Code in möglichst wenig Klassen zu stopfen.

    Leave a comment:


  • lalaland
    replied
    Hm... Das werde dann aber viele Klassen oO. Na ja aber stimmt schon dann lassen sich die Abfragen für die einzelnen Tabellen leichter erweitern, wenn noch abfragen dazu kommen.

    Leave a comment:


  • h3ll
    replied
    Originally posted by AmicaNoctis View Post
    Dann baust du Model-Klassen für logisch zusammengehörige Bereiche, z. B. UserModel mit Methoden wie getUsersByLastName(), getUsersByCity(), createUser(), insertUser(), updateUser(), ... und OrderModel mit getProductGroup(), getProductByEAN(), getOrdersByUsername(), getUnshippedOrders().
    Das hat aber nichts im Model verloren, das gehört ins Repository. Im Model werden nur die Daten und die Relationen abgebildet.
    Last edited by h3ll; 06-06-2011, 10:59.

    Leave a comment:


  • AmicaNoctis
    replied
    Das klingt nicht sinnvoll. Am besten du erstellst erst einmal eine Klasse für jede Art von Ding in deiner Datenbank, z. B. Address, User, Product, Order, ... und baust die zugehörigen Getter und Setter ein, z. B. Address->getStreet/setStreet(), User->getAddress().

    Dann baust du Model-Klassen für logisch zusammengehörige Bereiche, z. B. UserModel mit Methoden wie getUsersByLastName(), getUsersByCity(), createUser(), insertUser(), updateUser(), ... und OrderModel mit getProductGroup(), getProductByEAN(), getOrdersByUsername(), getUnshippedOrders().
    Last edited by AmicaNoctis; 06-06-2011, 10:49.

    Leave a comment:


  • h3ll
    replied
    Das hat dann aber nichts mehr mit OOP zu tun. Da kannst du gleich prozedural programmieren.

    Leave a comment:


  • lalaland
    replied
    Hm.. ich dachte das ich pro Tabelle eine Funktion mache.

    Leave a comment:


  • h3ll
    replied
    Und warum ist das _eine_ Klasse? Hast du nur eine Tabelle in der Datenbank? Pro Tabelle sollte zumindest eine Klasse existieren. Sinnvollerweise sind es mindestens zwei (eine Klasse, die für die Datenbankabfragen zuständig ist und eine Klasse, die die Daten enthält). Und anhand der Klassennamen sollte auch erkennbar sein, um was es sich eigentlich handelt.
    Last edited by h3ll; 06-06-2011, 10:38.

    Leave a comment:


  • lalaland
    replied
    Na ja evlt ist meine Klassenbeschreibung auch falsch. Ich will einfach eine Klasseerstellen in der alle Einträge in die Datenbank gemacht und alle ausgaben abgefragt werden können. Evtl kann man das ja noch mal in eine SetDB und eine GetDb Klasse oder so unterteilen. Über diese Klasse(n) sollen die Daten dann an das Ausgebe Template weiter gegeben werden.
    Mfg Lalaland

    Leave a comment:


  • AmicaNoctis
    replied
    Hallo,

    den Namen nach tendierst du zu einer oft beobachteten Arbeitsweise, bei der Klassen nach deren Aufgabe eingeteilt werden. Das führt praktisch dazu, dass du im Grunde prozedural arbeitest und die Klasse nur noch einen Namespace für die Funktionen darstellt. Solche Dinge wie ...Manager sind meistens schon ein Hinweis darauf, dass der Entwurf nicht stimmt.

    Besser: Klassen nach dem einteilen was sie sind und repräsentieren. Z. B. Database, Table, Row, ResultSet, ClientModel, Client u. s. w.

    Gruß,

    Amica

    Leave a comment:


  • h3ll
    replied
    Warum tätigt die DbManager Klasse irgendwelche Datenbankabfragen?

    Leave a comment:


  • lalaland
    started a topic Sql query auslagern?

    Sql query auslagern?

    Hi,
    ich schreibe grade eine DbManager class in dieser werden die Datenbankabfragen getätigt. Meine Frage ist würdet ihr die query´s in eine extra class auslagern? Zum Beispiel class Sqlquerys und diese dann einfache per get Funktion in die Managerclass holen. Oder sind die dort aufgehoben? Die frage kam auf Grund der Übersichtlichkeit auf. Der zweite Punkt wäre bremst das Auslagern die Abfragen extrem aus oder ist es zu vernachlässigen?
    Mfg Lalaland
Working...
X