Seite 1 von 1
Datenbank mit pickle
Verfasst: Donnerstag 22. Mai 2003, 09:22
von rogen
bin dabei python zu lernen -- coole sache --
ich möchte mir ein hotel programm programmieen
ich nehme wxpython.
jetzt suche eine datenbank oder was zum abspeichern
habe das modul pickle gefunden
oder dbm
es wären ung 7000 gästedaten mit dazugehörigen anreise abreise, anzahl usw.
so jetzt die frage.
muss ich dafür mysql nehmen oder geht das noch mit txt dateien und arrays ?
Re: Datenbank mit pickle
Verfasst: Donnerstag 22. Mai 2003, 10:15
von joerg
rogen hat geschrieben:bin dabei python zu lernen -- coole sache --
ich möchte mir ein hotel programm programmieen
ich nehme wxpython.
jetzt suche eine datenbank oder was zum abspeichern
habe das modul pickle gefunden
oder dbm
es wären ung 7000 gästedaten mit dazugehörigen anreise abreise, anzahl usw.
so jetzt die frage.
muss ich dafür mysql nehmen oder geht das noch mit txt dateien und arrays ?
Ich würde die Kombination aus pickle zum Serialisieren von Objekten und dbm zum Speichern nehmen. Und weil das eine gute Kombination ist, wurden beide schon verheiratet: im shelve-Modul. Damit kannst Du Python-Objekte in Datenbanken verwalten. Die Geschwindigkeit sollte für Deine Zwecke noch gut ausreichen, das solltest Du aber selber ausprobieren.
Wenn Du allerdings die Datensätze nach unterschiedlichen Kriterien (Attributen) wieder suchen willst, wäre eine SQL-Lösung sicherlich besser. Die shelve-Lösung kennt nur einen einfachen Schlüssel zum Abfragen, komplexere Anfragen mußt Du selbst implementieren, und das wird wieder langsam.
Jörg
Verfasst: Donnerstag 22. Mai 2003, 17:55
von rogen
was für ein vorteil hat das dic gegenüber von einen array
meine daten schauen ung so aus
["vorname","nachame", adresse usw, "[ ["erste aufenthalt],[zweiter , aufenthalt] ]"]
mfg
Verfasst: Donnerstag 22. Mai 2003, 21:32
von Dookie
Hi rogen,
das dict hat den Vorteil, daß Du die Felder mit namen ansprechen kannst. Bei Deinem Beispiel:
vorname = datensatz{"vorname"}
nachname = datensatz{"nachname}
...
ausserdem liefern SQL-basierte Module in der Regel auch die Ergebnisse von Abfragen in Listen aus Dictionarys, und so kannst du später das ganze auch auf MySQL oder Postgresql ummodeln.
Gruß
Dookie
Verfasst: Freitag 23. Mai 2003, 06:48
von Gast
ja aber
ein dic geht wohl nur für einen datensatz
also so dic {
01: [gerhard, rogen,usw],
02: [bla , bla , lba ]
}
also es gibt kein key für die zeilen(zb. Vornamen)
oder
Verfasst: Freitag 23. Mai 2003, 06:53
von rogen
oder geht sowas
id: 0001,vorname: Gerhard , Nachname: Rogen, Adresse
id: 0002, vorname: Sandra, Nachname: rogen, Adresse ...
.....
?
Verfasst: Freitag 23. Mai 2003, 13:13
von Dookie
Hallo nochmal,
einfach mal umekehrtrum denken,
Code: Alles auswählen
datensaetze = [
{"vorname" : "Gerhard", 'nachname" : "Rogen", "adresse" : "Zuhause" , ...},
{"vorname" : "Gerhard", 'nachname" : "Rogen", "adresse" : "Zuhause" , ...},
...]
jetzt kannst Du die "Zeilen" über die Indices der Liste ansprechen oder auch sortieren ...
Der Vormane vom ersten Datensatz ist dann: datensaetze[0]{"vorname"}
Gruß
Dookie
Verfasst: Freitag 23. Mai 2003, 14:11
von Gast
super danke