Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbank-Anbindung direkt in Klasse

Einklappen

Neue Werbung 2019

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

  • Datenbank-Anbindung direkt in Klasse

    Hallo,

    ich entwickle zurzeit ein eigenes Bugtracking-System. In diesem ist es natürlich möglich, Projekte zu verwalten.

    Ich arbeite mit einer MySQL-Datenbank und habe hierfür eine Klasse entwickelt, die mir die Datenbankanfragen zusammenbaut ..

    In meinem System sieht es mit den Projekten so aus: Ich habe eine Projekt-Klasse und jede Instanz dieser Klasse repräsentiert ein Projekt aus der Datenbank (die Daten werden aus der DB gelesen, Objekte werden erzeugt und dynamisch in ein array gepackt).
    Die Projekt-Klasse besitzt getter- und setter-Methoden für alle Attribute.

    Was ist aber nun, wenn ich z.B. ein Projekt löschen möchte. Soll ich hier eine delete-Methode in die Projekt-Klasse einbauen, die hier über die MySQL-Klasse mit der DB kommuniziert? Oder soll ich das Löschen hier außerhalb der Klasse (vl sogar in einer vollkommen neuen Klasse) durchführen?

    Grüße,

    Kasi

  • #2
    vl sogar in einer vollkommen neuen Klasse
    Normalerweise wird dazu bspw. ein Datenbank-Zugriffsobjekt verwendet. Übrigens auch bei der Erstellung des Projekt-Objekts (bspw. durch eine Factory)
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Zitat von nikosch Beitrag anzeigen
      Normalerweise wird dazu bspw. ein Datenbank-Zugriffsobjekt verwendet. Übrigens auch bei der Erstellung des Projekt-Objekts (bspw. durch eine Factory)
      Danke für den Tipp mit der Factory ..
      Ein Zugriffsobjekt hab ich bereits. Eine MySQL-Klasse, die mir die Querys baut und an die DB sendet. Aber ist es intelligent, diese direkt in der Projekt-Klasse zu verwenden, um Projekte aus der Datenbank zu löschen?

      Kommentar


      • #4
        U. U. - Siehe Dependency Injection

        Kommentar


        • #5
          Zitat von xm22 Beitrag anzeigen
          U. U. - Siehe Dependency Injection
          Sehr gut, dankeschön

          Kommentar


          • #6
            Doch ist es wirklich geschickt, jeder Klasse ein Attribut zu geben, dass die Datenbankverbindung speichert? Gibt es da nicht elegantere Lösungen?

            Kommentar


            • #7
              Wieso nicht? Es stellt ja immer nur eine Referenz dar, d. h. das DB-Objekt ist immer nur einmal vorhanden.

              Als Alternative käme ja nur in Frage, sich bei jedem Request irgendwoher dieses Objekt zu holen, was je nach Ausprägung nicht praktikabel oder Abhängigkeiten verursacht.

              Kommentar


              • #8
                meiner Meinung nach solltest du vielmehr drüber nachdenken, ob es wirklich "geschickt" ist, abgeschlossene Projekte sang und klanglos zu löschen. Ich würde sie stattdessen entweder mit einem Flag innerhalb der Tabelle kennzeichnen (zusätzliche Spalte) oder aber in eine ähnlich aufgebaute Archiv-Tabelle verschieben (alte_projekte .... ^^), du weißt doch : der wirkliche Datensammler löscht nicht, der will immer mehr Daten.

                Außerdem könnte es ganz interessant werden, wenn man irgendwo nochmal den Überblick über die bereits erledigten Projekte hat
                "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                Kommentar


                • #9
                  meiner Meinung nach solltest du vielmehr drüber nachdenken, ob es wirklich "geschickt" ist, abgeschlossene Projekte sang und klanglos zu löschen.
                  Es hat ja niemand beschreiben, wie ein Löschen definiert ist.

                  Doch ist es wirklich geschickt, jeder Klasse ein Attribut zu geben, dass die Datenbankverbindung speichert? Gibt es da nicht elegantere Lösungen?
                  Wieso jeder Klasse? Ich habe doch oben auf Factory hingewiesen. Faktisch braucht also diese das Zugriffsobjekt.
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar

                  Lädt...
                  X