Datenbank mit pickle

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
rogen

Donnerstag 22. Mai 2003, 09:22

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 ?
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

Donnerstag 22. Mai 2003, 10:15

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
rogen

Donnerstag 22. Mai 2003, 17:55

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
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Donnerstag 22. Mai 2003, 21:32

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
Gast

Freitag 23. Mai 2003, 06:48

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
rogen

Freitag 23. Mai 2003, 06:53

oder geht sowas

id: 0001,vorname: Gerhard , Nachname: Rogen, Adresse
id: 0002, vorname: Sandra, Nachname: rogen, Adresse ...

.....

?
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Freitag 23. Mai 2003, 13:13

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
Zuletzt geändert von Dookie am Freitag 23. Mai 2003, 16:53, insgesamt 1-mal geändert.
Antworten