बस परिप्रेक्ष्य के लिए, असली दुनिया से एक उदाहरण। वास्तव में एक "उत्तर" नहीं, सिर्फ एक कहानी :) मैंने इसे पोस्ट करने का फैसला किया क्योंकि किसी ने कहा कि स्कीमा बदलना [यानी। बनाने और छोड़ने टेबल] एक दुर्लभ कार्रवाई होना चाहिए। "एक संतोषजनक स्पष्टीकरण देने के बिना।
मैं वर्तमान में एक बहुत बड़ी निगम के लिए एक बड़ी आवेदन पर काम कर रहा हूँ। यह 80% PL/SQL के होते हैं (Oracle) सर्वर साइड और 20% ब्राउज़र जीयूआई (जावास्क्रिप्ट, याहू की उत्कृष्ट वाईयूआई 3 लाइब्रेरी पर आधारित)। जीयूआई में अकेले> 140 व्यक्तिगत मॉड्यूल हैं।
दुर्भाग्यवश दुर्भाग्य से एप्लिकेशन के सर्वर-साइड भाग में कोई मिडलवेयर नहीं है, यह सब लिखा है पीएल/एसक्यूएल में। ऐसा इसलिए है क्योंकि साल पहले यह एक छोटा ऐप था जहां यह आर्किटेक्चर ठीक था, और आपको संस्करण "2 लिखने के लिए कभी भी धन नहीं मिलता है।0 "(जो शून्य से शुरू, दूर 1.0 कोड फेंकने का मतलब है)। (फिर भी, सीमाओं को देखते हुए यह आश्चर्यजनक रूप से अच्छी तरह से लिखा है, भले ही कई PL/SQL कार्यों 1000 लाइनों या इससे भी अधिक अब तक से अधिक)।
तो, जबकि अपने वेब एप्लिकेशन मिडलवेयर नियमित सत्र और सत्र डेटा का ट्रैक रखता है, इस सब के PL/SQL में मैन्युअल रूप से किया जा सकता था - और हम अस्थायी तालिकाओं की बहुत सारी बनाकर ऐसा कर संभाल करने डेटा की भारी मात्रा में कर रहे हैं,। और मिडलवेयर कैश के बजाय हम सत्र डेटा के साथ-साथ कुछ फ़ंक्शंस के लिए टेबल का उपयोग करते हैं। उदाहरण के लिए, जब उपयोगकर्ता कुछ उच्च-स्तरीय "उपयोग मामलों" में प्रवेश करता है तो हम समेकित (बहुत विस्तृत मात्रा में) डेटा को temp में जोड़ते हैं। टेबल, और उपयोगकर्ता को उनके शेष सत्र के लिए उन तालिकाओं से परोसा जाता है। उन उच्च स्तरीय उपयोग मामलों को विवरण की आवश्यकता नहीं होती है, उन्हें केवल योग की आवश्यकता होती है।
तो, टेबल बनाना और छोड़ना ... अच्छा, कम से कम हम इसे करते हैं, और यह ठीक काम करता है। इसके लिए या उसके खिलाफ कोई सामान्य तकनीकी कारण नहीं है, यह आपकी वास्तविक दुनिया की स्थिति पर निर्भर करता है। पुरीस्ट मिडलवेयर की हमारी कमी के बारे में शिकायत कर सकते हैं, उदाहरण के लिए, असली दुनिया में शिकायत करने में कुछ भी नहीं किया जाता है।
मैं अधिक से अधिक चित्र को देखने के लिए प्रयास करने के लिए सुझाव देते हैं। आप गतिशील रूप से टेबल बनाने के खिलाफ क्यों हैं? क्या कारण वास्तव में तकनीकी हैं, फिर अपनी स्थिति की रक्षा करें जितना आप कर सकते हैं उतना बल (और चालाक) के साथ। हालांकि, अक्सर हम तकनीक करते हैं। लोग बहुत धार्मिक हैं और इसे स्वीकार करने से इनकार करते हैं (खुद को सबसे पहले)।
जब आप अपने आप को हमेशा के लिए बहस करते हैं (किसी अन्य "तकनीकी" के साथ) किसी को भी मनाने के लिए सक्षम होने के बिना यह संकेतक हो सकता है कि यह मुद्दा केवल इतना महत्वपूर्ण नहीं है, क्योंकि वहां कोई स्पष्ट और न्यायसंगत उत्तर नहीं है:) धार्मिक विचार विमर्श हमेशा तकनीकी लोगों ;-)
बनाना और तालिकाओं छोड़ने गतिशील रूप से एक "कानूनी" उपयोग के मामले की तुलना में बहुत लंबे समय तक कर रहे हैं। जब डेटा केवल अस्थायी रूप से उपयोग किया जाता है (बजाय "हमेशा के लिए" संग्रहीत करने के बजाय) और यदि आप केवल उस अस्थायी डेटा के सेट के विरुद्ध क्वेरी चलाते हैं। तालिका (यदि यह क्रॉस-टेबल है तो अस्थायी तालिका के खिलाफ भारी तर्क है), इसके लिए जाएं - यदि यह चीजों की भव्य योजना (आपका ऐप और समग्र परिदृश्य) में सुविधाजनक है।
पुनश्च: ओह और वैसे, सिर्फ आम तौर पर कहा जाए तो कोई रास्ता नहीं यहाँ दी परिदृश्य, एक तर्क यह में केवल प्रवेश करना चाहिए अगर यह वास्तव में एक मुद्दा है के रूप में प्रदर्शन के बारे में कहने के लिए बहुत। सभी स्थितियों में से 95% के लिए यह नहीं है, सूची में रखरखाव बहुत अधिक है।
* अलग * फ़ाइलों हर अंत से
करता है डेटा किसी एकल क्वेरी में उपयोग किया जा रहा है? यदि ऐसा है, तो * दृढ़ता * एक तालिका में भंडारण के लिए बहस करता है। –
बस एक यादृच्छिक विचार: यदि आप अपने मित्र की सिफारिश का पालन करते हैं तो आप किसी विशेष डेटा की खोज कैसे करेंगे और इसमें मौजूद सभी फ़ाइलों को वापस कैसे करेंगे? – RedBaron
मौजूदा सुविधा में, हम सभी फ़ाइल के डेटा क्वेरी करेगा या सिर्फ एक फ़ाइल के डेटा .. – user1190107