Seite 1 von 1

kleine Datenbank

Verfasst: Sonntag 26. Oktober 2008, 23:18
von nuss
Hi, ich hab ne kleine Datenbank geschrieben, die allerdings noch nicht ganz fertig ist.

Edit: ich habe den code nochmal verändert damit er lesbarer ist, und ihn ueber paste.pocoo
eingebunden :)

http://paste.pocoo.org/show/89159/

leider gibts noch keine speicher funktionen und die benutzung koennte noch ein
bisschen verbessert werden, aber es iss n anfang ;)


Edit/ sooo, hab das ganze nochmal neu ( und vor allem besser ) geschrieben.
http://paste.pocoo.org/show/89275/

Und noch n kleinen Bleistift zur Benutzung:

Code: Alles auswählen

table = Table()
table.create_spalten("Name", "Vorname", "Geschlecht")
table.create_zeile(Vorname="Max", Name="Mustermann", Geschlecht="Mann")
# wer sich z.b. beim Geschlecht nicht so sicher ist, kanns auch weglassen,
# in dem Fall ist das Geschlecht dann '' .
print table.zeile[0]

# Max hat ne Geschlechtsumwandlung gemacht ;)
table.zeile[0].set_value("Maxine", "Vorname")
table.zeile[0].set_value("Frau", "Geschlecht")
mustermann = table.search("Mustermann", "Name")
print mustermann[0]
als nächstes möchte ich Funktionen zum speichern und laden der Tabelle
schreiben, bin mir aber noch nicht ganz sicher, wie ichs machen soll.
Pickle wäre ne Möglichkeit. :roll:

Re: kleine Datenbank

Verfasst: Dienstag 28. Oktober 2008, 17:53
von Qubit
nuss hat geschrieben: Edit/ sooo, hab das ganze nochmal neu ( und vor allem besser ) geschrieben.
http://paste.pocoo.org/show/89275/
Das Einzige, was mir hier etwas seltsam vorkommt, ist, dass für jede Spalte und jede Zeile eine Instanz von dict verwendet wird.
Geht auch anders ;-)
http://paste.pocoo.org/show/89385

Code: Alles auswählen

if __name__ == '__main__':

    table = Table('Name','Vorname','Geschlecht')

    print "Tabelle:\n",table['cols']    
    table.update({'Name':'Mustermann','Vorname':'Max','Geschlecht':'Mann'})
    table.update({'Name':'Mustermann','Vorname':'Moritz','Geschlecht':'Mann'})
    table.update({'Name':'Musterfrau','Vorname':'Maxi','Geschlecht':'Frau'})
    table.show()
    
    print "\nUpdate Max Mustermann:\n",table['cols']
    table.update({'Vorname':'Maxine','Geschlecht':'Frau'},{'Name':'Mustermann','Vorname':'Max'})
    table.show({'Name':'Muster'})

    print "\nShow Geschlecht M:\n",table['cols']
    table.show({'Geschlecht':'M'})

    print "\nDelete Moritz Mustermann:\n",table['cols']
    table.delete({'Name':'Muster','Vorname':'Moritz'})
    table.show()

Verfasst: Mittwoch 29. Oktober 2008, 09:05
von sma
Tabellen und Zeilen (also ein relationales Datenbankbankschema) ist eigentlich nur sinnvoll, wenn man auch die relationale Algebra (Selektion, Projektion, Kreuzprodukt, usw.) implementiert. Wenn du das nicht vorhast, ist IMHO ein (persistente) Dictionary das einfachere Modell, um Objekte zu speichern.

Das Zeilen von dict erben halte ich nicht für eine gute Idee. Ich würde Zeilen als Tupel oder Listen repräsentieren. Tabellen kennen dann eine Liste oder eine Menge dieser Zeilen sowie eine weitere Liste mit den Spalten zur Beschreibung.

Hier ist ein Beispiel...

Stefan

Verfasst: Mittwoch 29. Oktober 2008, 12:59
von nuss
so ich hab das ganze nochmal sehr viel schoener und kuerzer gemacht ^^
Danke fuer den input ;)
http://paste.pocoo.org/show/89392/

im Prinzip kann man so sogar das set_value_by_Nmb weglassen,
weils ja praktisch genauso einfach ist das value per hand zu aendern.