Patterns DBManager

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Patterns DBManager

    Hallo,

    ich hätte mal eine Frage zur Strukturierung eines DB Objekts.

    In meiner App erstelle ich eine SQLite Datenbank.
    Jetzt habe ich eine Tabbar wo man Einträge hinzufügen kann, einen Abschnitt wo die Einträge in einer Liste aufgelistet werden usw...

    Aufgebaut ist es so: TabBarController > ViewController
    TabBarController > TableViewController

    Wo sollte ich am Besten das DB Objekt erstellen? In jedem einzellen Controller selbst, jeder Controller hat sein DB Objekt, öffnet die Connection, führt seine Operation aus und schließt die Connection wieder. Oder in dem TabBarController wird ein DB Objekt erstellt und an die weiteren Controller weitergegeben.

    Hoffe ich habe es verständlich erklärt...

    Gruß :)
  • Ok.

    Ich lade die Datenbank über eine fertige Datei. Also Tabellen sind dann schon erstellt.
    Jetzt frage ich mich wie ich die Insert Befehler implementieren soll. Soll ich die Hardcodieren oder soll ich eine Datei erstellen, weil die sich ja auch ändern können z.B. Tabellen Änderungen ?!
    Ich mein wie würde das dann über App Updates laufen...?!

    Vllt kann da ein Erfahrener helfen.
  • Ok. Würde das dann so aussehen, dass ich in der App schaue: Ist eine DB mit der "alten Version" (sprich alte Tabellen) vorhanden? Wenn ja dann, erstelle eine neue DB und implementiere die Daten aus der alten Db in die neue (oder einfach die alte DB nur ändern).
  • normalerweise einfach die alte DB ändern.

    ich baue mir immer eine versions-tabelle ein.
    in der steht die aktuelle tabellen-version drin (anhand der ich updates mache).
    des weiteren schreibe ich rein zu welcher version die DB abwärtskompatibel ist. (sodass ich beim downgrade weis ob die app mit der DB starten soll oder den user informiert etc...).
  • Genau darum geht es mir. Ich habe das Prinzip verstanden, aber die Umsetzung will nicht ganz.

    In meinem Projekt Navigator habe ich folgende Gruppierungen (Ordner):
    Model
    ---Database
    ------DBManager (Klasse)
    View
    ---Add
    ------AddViewController (Klasse)

    Die Klasse AddViewController (Subklasse von UIViewController) habe ich im Interface Builder für einen ViewController als CustomClass gesetzt.
    Gelten diese Klassen nicht im Sinne des MVC Konzepts als Controller? Also sind diese Subklassen nur für Änderungen des Elements in der View und zur Kommunikation mit externen Controllern?

    Wenn ich das richtig verstanden habe bräuchte ich jetzt noch einen Abschnitt Controller:
    Controller
    ------Controller (Klasse) (Subklasse von NSObject)

    Ist es üblich, dass man mehr als einen Controller hat oder kommt man mit einem aus?

    Danke für die Hilfe :) #anfaenger
  • Ok jetzt abgesehen vom DB Controller.
    Gehört jetzt eigentlich nicht mehr hier rein frag aber trotzdem mal.

    Die Klasse AddViewController (Subklasse von UIViewController) habe ich im Interface Builder für einen ViewController als CustomClass gesetzt.
    Gelten diese Klassen nicht im Sinne des MVC Konzepts als Controller? Also sind diese Subklassen nur für Änderungen des Elements in der View und zur Kommunikation mit externen Controllern?

    Wenn ich das richtig verstanden habe bräuchte ich jetzt noch einen Abschnitt Controller:
    Controller
    ------Controller (Klasse) (Subklasse von NSObject)

    Ist es üblich, dass man mehr als einen Controller hat oder kommt man mit einem aus?