2012-05-30 13 views
6

मेरा सवाल है कि पाइथन में एक साधारण डेटाबेस कैसे बनाएं। मेरे उदाहरण है:पायथन डाटाबेस

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

अब मैं इस उपयोगकर्ता की जानकारी ठीक अद्यतन कर सकते हैं, लेकिन मैं कैसे कर

  1. इस डेटा संरचना को और अधिक उपयोगकर्ताओं को जोड़ें। शब्दकोशों का एक शब्दकोश?
  2. उन एक से अधिक क्रेडिट कार्ड, एक रिश्ते के लिए कई

किसी भी प्रतिक्रिया के लिए धन्यवाद करने के लिए, मैं थोड़ी देर के

+2

असली समस्या यह है कि यह इन-मेमोरी दृष्टिकोण गन्दा हो जाता है। यदि आपके पास उपयोगकर्ताओं का शब्दकोश है, तो आप चाबियों के लिए क्या उपयोग करते हैं? अगर डुप्लिकेट कुंजी हैं तो क्या होगा? इत्यादि –

+0

वैसे, आपको इस [पायथन से संबंधित डेटाबेस की सूची] में रुचि हो सकती है (http://wiki.python.org/moin/DatabaseInterfaces#Native_Python_Databases), विशेष रूप से मूल पायथन वाले। – kojiro

उत्तर

10

के लिए इस के आसपास मेरे सिर लपेटो करने आप रुचि हो सकती है की कोशिश कर रहा है की अनुमति दें SQLAlchemy में। यह एक वास्तविक डेटाबेस बनाता है, जैसे कि SQLite या MySQL, पायथन कक्षाओं की तरह अधिक काम करता है।

4

आप पाइथन में sqlite के साथ एक साधारण डेटाबेस बना सकते हैं, यहां इसके लिए एक मूल tutorial है।

+1

मुझे यकीन है कि यह बहुत आसान होगा, लेकिन मेरा प्रोफेसर कुछ हद तक छेड़छाड़ कर रहा है और चाहता है कि हम कठिन तरीके से सीखें –

5

मैंने देखा है कि अधिकांश कुंजी-मूल्य स्टोर या तो शब्दकोशों का शब्दकोश (जैसे मोंगो *) या स्ट्रिंग्स (जैसे रेडिस) का शब्दकोश है। दोनों दृष्टिकोणों के लिए पेशेवर और विपक्ष हैं। मैं आप क्या चाहते हैं पता नहीं है, तो मैं सबसे सरल जवाब देंगे:

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

* ठीक है, निष्पक्ष होना करने के लिए, मोंगो अधिक जादू तार का एक शब्दकोश की तरह है: शब्दकोशों की सूची के साथ जाओ । यह जेसन है, लेकिन लुकअप को आंतरिक रूप से संभाला जाता है, इसलिए आप इसे मनमानी (लेकिन जेसन-सीरियलज़ेबल) डेटा संरचनाओं के शब्दकोश की तरह व्यवहार कर सकते हैं।

4

1। इस डेटा संरचना में अधिक उपयोगकर्ताओं को जोड़ें। शब्दकोशों का एक शब्दकोश?

शब्दकोशों की एक सूची।

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

2. उन एक से अधिक क्रेडिट कार्ड है, एक रिश्ता

एक सूची के लिए एक बहुत की अनुमति दें।

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

ओह बढ़िया, धन्यवाद, मुझे बस इस संरचना के आधार पर उपयोगकर्ताओं को बनाने का एक तरीका ढूंढना होगा। धन्यवाद –

4

जानकारी संग्रहीत करने के लिए User कक्षा बनाएं। कक्षा में creditcards विशेषता हो सकती है जो CreditCard वर्ग उदाहरणों में से एक है जो क्लास इंस्टेंस में जोड़े जाते हैं या बाद में क्लास विधि का उपयोग करते हैं जिसे आप परिभाषित कर सकते हैं। अन्य विधियों को कॉल किए जाने पर आवश्यक (और अन्य) विशेषताओं को अपडेट कर सकते हैं। इसे ऑब्जेक्ट उन्मुख प्रोग्रामिंग (ओओपी) कहा जाता है।

उदाहरणों को list एस और dict एस जैसे विभिन्न प्रकार के अंतर्निर्मित कंटेनर कक्षाओं के उदाहरणों के भीतर स्मृति में संग्रहीत किया जा सकता है। उन्हें डिस्क पर संग्रहीत किया जा सकता है और बाद में pickle, shelve, json, और sqlite3 मॉड्यूल का उपयोग करके पुनर्प्राप्त किया जा सकता है, बस कुछ नाम देने के लिए।

आप ऐसा कुछ भी करने की कोशिश नहीं कर रहे हैं जो पहले नहीं किया गया है - जो अच्छी खबर है क्योंकि इसका मतलब है कि आपके निपटारे में ऑफ-द-शेल्फ सॉफ़्टवेयर है, लेकिन आपको इसे पढ़ना होगा उन्हें प्रलेखन में और शायद कुछ और प्रश्न पूछें जब तक कि आप उन्हें कैसे उपयोग करें, तो आप सवालों का जवाब देना शुरू कर सकते हैं। ;-)

पायथन में आपका स्वागत है!

संबंधित मुद्दे