2012-05-30 20 views
6

Moje pytanie brzmi: jak utworzyć prostą bazę danych w python. Mój przykład jest:Baza danych Pythona

User = { 
'Name' : {'Firstname', 'Lastname'}, 
'Address' : {'Street','Zip','State'}, 
'CreditCard' : {'CCtype','CCnumber'}, 
} 

Teraz mogę zaktualizować informacje Ten użytkownik jest w porządku, ale jak mam

  1. dodać więcej użytkowników do tej struktury danych. Słownik słowników?
  2. Zezwalaj użytkownikom mieć więcej niż jedną kartę kredytową, wiele do jednego relacji

Dzięki za odpowiedzi, ja już próbuje owinąć głowę wokół to za chwilę

+2

Prawdziwy problem polega na tym, że takie podejście do pamięci staje się coraz bardziej chaotyczne. Jeśli masz słownik użytkowników, jakich używasz do kluczy? Co zrobić, jeśli istnieją zduplikowane klucze? itd. –

+0

Nawiasem mówiąc, może Cię zainteresować ta [lista baz danych związana z Pythonem] (http://wiki.python.org/moin/DatabaseInterfaces#Native_Python_Databases), szczególnie natywna wersja Pythona. – kojiro

Odpowiedz

10

Możesz być zainteresowany w SQLAlchemy. Dzięki temu faktyczna baza danych, taka jak SQLite lub MySQL, działa bardziej jak klasy Python.

4

Możesz utworzyć prostą bazę danych w Pythonie z sqlite, tutaj jest podstawowa tutorial.

+1

Jestem pewien, że byłoby to o wiele łatwiejsze, ale mój profesor jest trochę ukłuciem i chce, żebyśmy się ciężko nauczyli –

5

Większość magazynów klucz-wartość, które widziałem, to słownik słowników (np. Mongo *) lub słownik ciągów znaków (np. Redis). Istnieją oba argumenty za i przeciw obu podejściom. Nie wiem, co chcesz, więc dam Najprostsza odpowiedź: Płynę z listy słowników:

Users = [] 
Users.append({ 
    'Name' : {'Firstname', 'Lastname'}, # Are these sets? 
    'Address' : {'Street','Zip','State'}, 
    'CreditCard' : {'CCtype','CCnumber'}, 
}) 

* OK, aby być uczciwym, Mongo jest bardziej podobny do słownika magicznych strun . To json, ale odnośniki są obsługiwane wewnętrznie, więc możesz traktować je jak słownik arbitralnych (ale nadających się do szeregowania w jsonach) struktur danych.

4

1. Dodaj więcej użytkowników do tej struktury danych. Słownik słowników?

Lista słowników.

[{'name': ...}, {'name': ...}] 

2. Zezwalaj użytkownikom mieć więcej niż jedną kartę kredytową, wiele do jednego relacji

listę.

{'name': ..., 'creditcard': [['type', 'number'], ['type', 'number']]} 
+1

O, świetnie, dziękuję, po prostu muszę znaleźć sposób na stworzenie użytkowników opartych na tej strukturze. Dziękuję Ci –

4

Utwórz klasę User, aby zapisać informacje. Klasa może mieć atrybut creditcards, który jest instancją klasy list z CreditCard dodawaną do instancji klasy, gdy zostaną one utworzone lub później za pomocą metody klasy, którą można zdefiniować. Inne metody mogą aktualizować te (i inne) atrybuty, jeśli jest to konieczne, po wywołaniu. To się nazywa programowanie obiektowe (OOP).

Przypadki mogą być przechowywane w pamięci w przypadkach różnych wbudowanych grup pojemniku, takim jak list s i dict s. Mogą być przechowywane na dysku i pobierane później przy użyciu modułów pickle, , json i sqlite3, aby wymienić tylko kilka.

Nie próbujesz zrobić niczego, czego wcześniej nie robiłeś - co jest dobrą wiadomością, ponieważ oznacza, że ​​masz do dyspozycji dużo gotowego oprogramowania, ale musisz przeczytać je w dokumentacji i prawdopodobnie zadadzą jeszcze kilka pytań, dopóki nie nauczysz się ich używać, możesz zacząć odpowiadać na pytania. ;-)

Witamy w Pythonie!