2010-04-19 14 views
12

मैं अपने स्थानीय हाईस्कूल (प्रोनो) के लिए एक छोटा कार्यक्रम लिख रहा हूं। कार्यक्रम में एक इंटरफ़ेस है जो उपयोगकर्ता को स्कूल की छुट्टियों में प्रवेश करने की अनुमति देता है। विंडोज ऐप अकेले यह एक साधारण स्टैंड है।उपयोगकर्ता डेटा की अपेक्षाकृत कम मात्रा में स्टोर करने के लिए मैं किस प्रारूप का उपयोग करता हूं

डेटा को स्टोर करने के लिए मुझे किस प्रारूप का उपयोग करना चाहिए? एक बड़ा संबंध डेटा स्पष्ट रूप से overkill है।

मेरी प्रारंभिक योजना डेटा को एक XML फ़ाइल में संग्रहीत करना था। सहकर्मी सुझाव दे रहे हैं कि मैं जेएसओएन फाइलों, एक्सेस डेटाबेस, एसक्यूएल लाइट, और एसक्यूएल सर्वर एक्सप्रेस का उपयोग करता हूं। पुराने स्कूल आईएनआई फाइलों का भी एक सुझाव था।

+2

पूछना है, कितने उपयोगकर्ता उस डेटाबेस का उपयोग करेंगे? क्या वे इसे सबको एक बार में इस्तेमाल करने जा रहे हैं? तो यदि आप प्रति उपयोगकर्ता एक नहीं चाहते हैं तो शायद एक एक्सएमएल फ़ाइल एक बुरा विचार है। –

+0

आपका प्रोग्राम वास्तव में क्या करता है? यदि यह केवल छुट्टियों की सूची देता है और उपयोगकर्ताओं को छुट्टियों में प्रवेश करने की अनुमति देता है, तो मुझे नहीं लगता कि आपको कुछ भी क्यों चाहिए लेकिन एक साधारण पाठ फ़ाइल ... – IVlad

+0

इस ऐप, ओस्कर के केवल एक या दो उपयोगकर्ता होंगे। मुझे उनके नेटवर्क या डेटाबेस का कोई ज्ञान नहीं है। वे Outlook का उपयोग नहीं करते हैं। मेरा विचार था कि वे इसे आसानी से फ़ोल्डर में सहेज सकते हैं और अपने डेस्कटॉप पर एक लिंक बना सकते हैं। मुझे शायद उन्हें यह दिखाना होगा कि ऐसा कैसे करें; ओ) – wcm

उत्तर

10

इस तरह की परियोजनाओं में बड़ी, जल्दी, और यदि वे आपकी एक्सएमएल फ़ाइल करते हैं तो जटिल हो जाएंगे और प्रबंधन का बोझ बन जाएगा।

मैं किसी XML फ़ाइल या जेसन में डेटा संग्रहीत करने की अनुशंसा नहीं करता - वे एक ही नाम से केवल टेक्स्ट फाइलें हैं, सभी एक ही समस्या से पीड़ित हैं - आपके पास कोई संपादन नहीं है कि उन्हें कौन संपादित करता है।

डाटाबेस के कुछ प्रकार, छोटे लोगों से शुरू पहले (एक्सेस, SQLLite)

संपादित

अपने नवीनतम टिप्पणी के आधार पर प्रयोग करें, एक बिंदु है जहां उन का उपयोग कर रहे हैं के लिए आगे रोल दो साल के लिए ऐप।

  • तब तक आप कितना डेटा संग्रहीत करने की अपेक्षा करते हैं?
  • प्रयोक्ता (ओं) ऐतिहासिक डेटा के माध्यम से वापस देखने की जरूरत है, उदाहरण के लिए देखेंगे करने के लिए, क्या वे पिछले साल

इस समय निकाला और अधिक तो, अभी

  • शिक्षक क्या है गुरुवार दोपहर
  • क्या शिक्षक टी 15 मई 2010 को कार्यक्रम में भाग लेने के लिए स्वतंत्र होंगे?
  • छात्र सी घटना डी में भाग ले सकते हैं?

एसक्यूएल के साथ संभालने के लिए ये सभी प्रश्न/समस्याएं बहुत आसान/अधिक कुशल हैं। इसके अलावा आपके परिणामस्वरूप कोडबेस बहुत अधिक समझ में आएगा। एक्सएमएल ट्रैवर्स करना चीजों की सबसे सुंदर चीज नहीं है।

प्लस यदि आपका उपयोगकर्ता आधार एक्सेल से पहले से परिचित है, तो Excel को SQL डेटाबेस (और कस्टम परिणाम उत्पन्न करने) से लिंक करना एक्सएमएल के साथ ऐसा करने से बहुत आसान है।

+0

आप अपने संपादन में उत्कृष्ट अंक बनाते हैं। हालांकि इस शेड्यूलिंग मुद्दे को राज्य और संघीय नियमों की तुलना में शिक्षक या छात्र उपलब्धता के साथ कम करना है कि विभिन्न प्रकार की समीक्षाओं और बैठकों के लिए कितना समय गुजरना है। आपके इनपुट के लिए धन्यवाद: ओ) – wcm

+1

+1 किसी प्रकार के डीबी के लिए धक्का देने के लिए। मूल रूप से दो उपयोगकर्ताओं के लिए लिखे गए ऐप्स में दो आजीवन अंतराल होते हैं: 0 उपयोगकर्ता क्योंकि ऐप खराब या अनावश्यक है, इस मामले में इससे कोई फर्क नहीं पड़ता कि आप क्या करते हैं, या कई उपयोगकर्ता इससे बढ़ते रहते हैं, इस मामले में यदि आपके पास नहीं है सामने कुछ डीबी प्रौद्योगिकी, आप बाद में इसके लिए काफी भुगतान करेंगे। – cdkMoose

2

एचएम, स्पष्ट रूप से एसक्यूएल एक्सप्रेस एक पूर्ण उड़ा डेटाबेस है - otohj यह समझ में आता है। डाटाबेस का उपयोग क्यों न करें यदि उनके पास पहले से कोई है?;)

अन्यथा मैं संभवतः एक एक्सएमएल फाइल के साथ जाऊंगा।

+0

उनके पास पहले से कोई नहीं है। – wcm

+0

फिर एक्सएमएल - आप अन्य परियोजनाओं या अधिक कार्यक्षमता, फिर एसक्यूएल एक्सप्रेस की भविष्यवाणी कर सकते हैं। – TomTom

2

मैं एक एक्सएमएल फ़ाइल और एक टाइप किए गए डेटासेट की सिफारिश करता हूं।
आपको यह पता लगाने की आवश्यकता होगी कि XML फ़ाइल कहां रखना है।

ध्यान दें कि यदि आप कभी भी एकाधिक उपयोगकर्ताओं को इसका उपयोग करने की अनुमति देना चाहते हैं, तो को डेटाबेस या डेटाबेस का उपयोग करने के लिए की आवश्यकता है।

+0

प्वाइंट लिया गया।अभी, विशेष शिक्षा विभाग में केवल एक या दो लोग इसका इस्तेमाल करेंगे। – wcm

+0

एकाधिक उपयोगकर्ताओं के लिए डेटाबेस का उपयोग करने के लिए * की आवश्यकता क्यों है? फाइलों के अंदर डेटा को अपडेट करने के साथ ही एकमात्र समस्या होगी, लेकिन इसे एक समय में केवल 1 संपादक को अनुमति देने के माध्यम से आसानी से नियंत्रित किया जा सकता है। –

1

मैं के लिए

  • SQL सर्वर एक्सप्रेस (स्वतंत्र और पूर्ण विकसित रिलेशनल डाटाबेस)
  • XML/JSON जाना चाहते हैं यदि आप एक डेटाबेस नहीं करना चाहते (LINQ एक्सएमएल के लिए एक बड़ा मदद यहाँ हो सकता है)।
3

मुझे जेसन उत्तर और एसक्यूएल लाइट को दूसरा करना होगा।

एक और विकल्प अंतर्निहित डेटाबेस का उपयोग करना होगा जो सभी विंडोज़ (since Windows 2000), ESENT में शामिल है। http://managedesent.codeplex.com/

+1

मुझे हमेशा आश्चर्य होता है कि यह किसी लोकप्रिय उत्तर का इतना छोटा क्यों प्रतीत होता है जब कोई एप्लिकेशन के लिए स्थानीय डेटा स्टोर के बारे में कोई प्रश्न पूछता है और माइक्रोसॉफ्ट द्वारा जाने के लिए तैयार डेटाबेस पहले ही उपलब्ध है। हालांकि मुझे विश्वास है कि यह सामान्य डीबी बनाम नोएसक्यूएल डीबी की तरह बहुत अधिक है। –

1

xml फ़ाइलों के साथ काम करना आसान बनाने के लिए एक कोडप्लेक्स प्रोजेक्ट है जो एक अच्छा विकल्प प्रतीत होता है। लिंक से xml का उपयोग करके वस्तुओं/वस्तुओं से फ़ाइलों को पढ़ने/लिखना काफी आसान होना चाहिए। XDocument और XElement कक्षाएं देखें एक्सेस डेटाबेस, एसक्यूएल लाइट, और एसक्यूएल सर्वर एक्सप्रेस सेंसर ओवरकिल की तरह। क्या आपको वास्तव में एक साधारण कैलेंडर डेटा स्टोर करने के लिए डेटाबेस की आवश्यकता है? क्या आपका आवेदन बढ़ने जा रहा है?

+0

मुझे उम्मीद नहीं है कि यह बहुत बढ़ रहा है। – wcm

3

क्या आपने SQLite का उपयोग करने पर विचार किया है? इसके परिणामस्वरूप एक छोटी .s3db फ़ाइल होगी। SQLite का उपयोग स्थानीय भंडारण के लिए सभी प्रकार के डेस्कटॉप अनुप्रयोगों द्वारा किया जाता है।

एक SQLite .NET library है जो आपको अपने डेटा को CRUD करने के लिए ADO.NET का उपयोग करने की अनुमति देगा।

Mike Duncan's article on how to get started with SQLite in .NET देखें।

+1

SQLite के साथ जाकर आपको एक चंकियर डेटाबेस में जाने के लिए एक अच्छी स्थिति में भी रखा जाता है, आवश्यकताएं बाद में इसकी मांग करनी चाहिए। – Quentin

0

मैं धारावाहिक कक्षाओं का उपयोग करता हूं।

1

"सरल स्टैंड अकेले विंडोज ऐप" से यह मुझे लगता है कि यह महत्वपूर्ण नहीं है। मैं जो कुछ भी आसान हूं, या जो आप सबसे ज्यादा आरामदायक हैं, उसके साथ जाऊंगा। एक्सएमएल उपयोगी रूप से मानव पठनीय है, लेकिन एक समझदार रूप से स्वरूपित फ्लैट फ़ाइल बस समझदार हो सकती है।

0

किसी बात की बात करने पर विचार करें कि क्या आप किसी प्रकार की टेक्स्ट फ़ाइल के बजाय डेटाबेस का उपयोग करते हैं: अब आप "सरल स्टैंड अकेले विंडोज ऐप" नहीं हैं। अब आपके पास लिखने के लिए एक इंस्टॉलेशन प्रोग्राम है (सबसे अधिक संभावना है)।

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

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