1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Datenbank für App

Dieses Thema im Forum "iOS-Developer" wurde erstellt von Valledalle, 18.07.09.

  1. Valledalle

    Valledalle Golden Delicious

    Dabei seit:
    18.07.09
    Beiträge:
    10
    Hi :)
    bin jetzt bei meinem App an dem Punkt angekommen, an dem ich eine Datenbank integrieren muss. Hab bisher allerdings nur C# auf meinem Windows rechner programmiert. Auf dem Bild seht ihr was alles in die Datenbank soll.
    Die roten Hauptgruppen bleiben 3 Stück, die Gruppen und Untergruppen können mehr werden. Am Ende wird es so sein, dass die Gruppen manchmal von einer Hauptgruppe in eine andere Hauptgruppe verschoben werden müssen (Ist es dafür vielleicht besser 3 verschiedene Datenbänke anzulegen?).
    Soll ich dafür SQLite benutzen? Oder gibts noch etwas anderes? Kann ich vielleicht mit diesem "Data Model" oder "Mapping Model" unter "Resource" arbeiten?
    [​IMG]
     
  2. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    also was du machen könntest wäre dies in eine xml Datei zu verpacken
    Code:
    <?xml blablabla>
    <Hauptgruppe>
     <Gruppe>
      <string></string>
      <string></string>
      <Array>
       <Untergruppe>
        <bool></bool>
        <integer></integer>
        <date></date>
        <string></string>
        <string></string>
       </Untergruppe>
      </Array>
     </Gruppe>
    </Hauptgruppe>
    
    <Hauptgruppe>  //2te Hauptgruppe
     <Gruppe>
      <string></string>
      <string></string>
      <Array>
       <Untergruppe>
        <bool></bool>
        <integer></integer>
        <date></date>
        <string></string>
        <string></string>
       </Untergruppe>
    
       <Untergruppe> //2te Untergruppe
        <bool></bool>
        <integer></integer>
        <date></date>
        <string></string>
        <string></string>
       </Untergruppe>
    
      </Array>
     </Gruppe>
    </Hauptgruppe>
    
    aber leider habe ich mit C# und xml keine Erfahrungen, wichtig wäre auch zu wissen, ob diese Datenbank oft verändert wird oder nur einmal anlegen und fertig? Wenn dich dieser Weg interessiert, kannst du dir auch ansehen wie so RSS Dateien aufgebaut sind, ist auch nur eine xml Datei, wo alle Informationen drinnen stehen, Datensätze hier zu verschieben geht dann auch mit den xml-Befehlen ziemlich einfach, da wird halt einfach ein Datensatz per Arrayzugriff ausgelesen und in eine andere Arrayposition eingefügt
     
  3. Valledalle

    Valledalle Golden Delicious

    Dabei seit:
    18.07.09
    Beiträge:
    10
    Ich meinte oben, dass ich bisher nur C# programmiert habe und Objective C für mich neues Terrain ist. Jetzt momentan benutze ich Objective C für das App. Das war vielleicht unklar ausgedrückt ;)
    Die Liste wird wärend der Laufzeit aufgerufen und aber auch bearbeitet. Da kommt aber jede Menge rein, denke mal xml ist dafür leider zu langsam. :(
     
  4. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    naja ich habe auch nicht an ObjC gedacht, xml ist ja sehr einfach aufgebaut und kann prinzipiell in jeder Programmiersprache verarbeitet werden, wenn du aber viele Datensätze verarbeiten willst, solltest du dann wahrscheinlich doch "richtige" Datenbanken benutzen. Diese setzten dann aber auch einen Server voraus. Und du musst erst überprüfen mit welchen Datenbanken deine Programmiersprache kompatibel ist. Da ich mit ObjC noch nicht mit Datenbanken gearbeitet habe, kann ich dir dazu nicht viel sagen, aber wenn es geht, würde ich schon eien SQL-Datenbank empfehlen
     
  5. Valledalle

    Valledalle Golden Delicious

    Dabei seit:
    18.07.09
    Beiträge:
    10
    Hast du denn schon mit SQL gearbeitet? Kann ich da überhaupt so einen 'Datenbaum' (Ich nenns mal so ;) , also quasi Array in Array) erstellen?
     
  6. Jamsven

    Jamsven London Pepping

    Dabei seit:
    21.11.07
    Beiträge:
    2.046
    An deinen Ideen sehe ich, dass du das Konzept der relationellen Datenbanken nicht kennst.
    Das Problem ist, dass solche Fragen nicht mit einem Post hier zufriedenstellend beantwortet sind.
    Wenn du dir viel Ärger, Nerven und eine inkonsistente Datenbank sparen willst, empfehle ich dir
    entsprechende Lektüren zur Brust zu nehmen.
    Beispielsweise:
    http://www.amazon.de/Grundlagen-von-Datenbanksystemen-Ausgabe-Grundstudium/dp/3827371538

    Dieses Buch ist ganz neutral und verlässt sich nicht auf ein spezifisches Datenbanksystem.

    Ich persönlich nutze postgreSQL als System, die Meisten nutzen aber mySQL. Doch wissen wir ja als Machuser, dass Marktmacht != Qualität ist.;)
     
  7. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    sqlite ist aber wohl für eine App eher geeignet als mySQL ;)
     
  8. Jamsven

    Jamsven London Pepping

    Dabei seit:
    21.11.07
    Beiträge:
    2.046
    Mit SQL Lite habe ich mich nicht ausgiebig beschäftigt und weiß auch nicht was genau dem System fehlt. Wie dem auch sei, die Konzepte sind gleich und deren Beherrschung werden auch in SQLite von Nöten sein.
    Die Systemauswahl ist ja anforderungsabhängig.
     
  9. Valledalle

    Valledalle Golden Delicious

    Dabei seit:
    18.07.09
    Beiträge:
    10
    Hm, dann werd ich mich wohl mal in SQL reinarbeiten. Habe mich ja noch gar nicht mit den Datenbänken auf dem Mac beschäftigt und wollte jetzt erstmal grundsätzlich wissen ob das mit SQL umzusetzen ist. Nicht, dass ich mich da reinlese und es klappt nicht.
    Mit den DataSets bei C# konnte ich mir bisher immer alle Wünsche erfüllen ;) und wenn das mit den Relations bei SQL auch möglich ist, dann ist ja wunderbar. Hab das nur bisher nirgendwo gesehen.
     
  10. The-Kenny

    The-Kenny Transparent von Croncels

    Dabei seit:
    22.05.08
    Beiträge:
    307
    Wenn wir schon auf dem iPod/Mac sind: Wieso nicht CoreData? Das ist ein schöner Abstraktionslayer für verschiedene Datenbanken der sehr gut in Cocoa integriert ist.

    (Das funktioniert dann genau mit den von dir genannten Data Models in Xcode)
     
  11. Jamsven

    Jamsven London Pepping

    Dabei seit:
    21.11.07
    Beiträge:
    2.046
    Mit Core Data würde das auch laufen nur ich habe den TE so verstanden, dass er je einen Frontend für Win und Mac haben will.
     
  12. doeme89

    doeme89 Pomme Miel

    Dabei seit:
    27.12.06
    Beiträge:
    1.476
    Er beschreibt zwar dass er von der Windows-Welt her kommt, aber nicht dass die App auch auf Windows laufen soll. ;)
     
  13. Jamsven

    Jamsven London Pepping

    Dabei seit:
    21.11.07
    Beiträge:
    2.046
    Wenn er beide Systeme nutzt und er schon ein C# App hat, liegt es nahe die Daten plattformunabhängig zu speichern. ;)

    Zwar kann man sicherlich auch von dem SQLite ohne CoreData exportieren, aber wie ich schon unten geschrieben hab kenne ich mich mit SQLite nicht aus und kann da auch nichts zu sagen.
     
    #13 Jamsven, 20.07.09
    Zuletzt bearbeitet: 20.07.09
  14. Valledalle

    Valledalle Golden Delicious

    Dabei seit:
    18.07.09
    Beiträge:
    10
    Also das Programm soll auf dem iPhone laufen. Das hab ich total vergessen zu erwähnen, tut mir leid. Ich hab mir Programmieren (Java, C#) mit 2 Büchern selbst angelesen und meist die Fachwörter übersprungen, daher wusste ich auch nicht genau wie ich mein Vorhaben beschreiben soll. In den Büchern war auch kaum etwas über Datenbanken :(

    Hatte "App" so als iPhone Programm gespeichert, das es natürlich für Application steht hab ich völlig verpennt. Das derzeitige Projekt hat gar nichts mit meinen alten zu tun.
     
  15. Jamsven

    Jamsven London Pepping

    Dabei seit:
    21.11.07
    Beiträge:
    2.046
    Datenbankdesign ist auch eine ganz andere Disziplin als Apps zu Programmieren.
    Sowas gibt es meistens nur in Kombination von PHP&mySQL als Literatur.
    Naja egal.

    Seit FW 3.0 kannst du CoreData, was auf SQLite aufbaut, benutzen.
    http://developer.apple.com/iphone/l...honeCoreData01/Introduction/Introduction.html

    Bedenke aber das der kritischste Unterschied zu C# und Java die mangelnde "garbage collection" ist.
    Will grob heißen: Was du an Speicher bestellst musst du am Ende auch explizit abbestellen.
    Analog dazu bist du wahrscheinlich an einem automatik Auto gewöhnt und musst nun mit einem Schaltwagen zurecht kommen. ;)
     
  16. Poljpocket

    Poljpocket Salvatico di Campascio

    Dabei seit:
    07.01.07
    Beiträge:
    432
    Du kannst auch deine Daten in XML speichern und in deiner App dann in NSDictionaries/NSArrays laden und erst am Schluss wieder speichern. Das geht dann super schnell. Braucht dann nicht ständig Dateizugriffe, die - nun mal echt - langsam sind!!

    gruss ppocket
     
  17. doeme89

    doeme89 Pomme Miel

    Dabei seit:
    27.12.06
    Beiträge:
    1.476
    Zwar gibt es keine GARBAGE COLLECTION, aber informier dich doch mal über AutoreleasePools. Das ist auch ne feine Sache! ;)
     
  18. Jamsven

    Jamsven London Pepping

    Dabei seit:
    21.11.07
    Beiträge:
    2.046
    Schön aber die Objekte brauchen auch eine autorelease Nachricht, wenn sie keinen convenience allocator haben. Außerdem muss man im Auge behalten, dass diese Objekte ohne Anker nur einen Zyklus "leben".

    Ist immer noch eine Halbautomatik.
     
  19. Valledalle

    Valledalle Golden Delicious

    Dabei seit:
    18.07.09
    Beiträge:
    10
    Das hat mich am Anfang auch verwirrt, dass ich jetzt auf einmal Speicher zuweißen muss. Sobald ich mich für 100 $ angemeldet habe, kann ich mir ja Diagramme des Arbeitsspeichers anzeigen lassen. :)
    Aber auch das mit den Pointern habe ich noch nicht ganz verstanden.

    Was meint ihr zu Poljpocket beitrag?
    Mit xml hatte ich leider bei C# keine guten Erfahrungen gemacht, was die Performance angeht. :(
     
  20. Jamsven

    Jamsven London Pepping

    Dabei seit:
    21.11.07
    Beiträge:
    2.046
    Core Data unterstützt auch XML und wenn du dir die Datenstruktur mit Core Data erstellt hast, dann brauchst du dich auch nicht mehr um den XML Import/Export zu kümmern.
     

Diese Seite empfehlen