जस्टिन केव सही है कि यह निरर्थक डेटा को जन्म दे सकता है, लेकिन यह वास्तव में इस बात पर निर्भर करता है कि आप अपने डेटाबेस को कैसे डिज़ाइन करते हैं।
किसी संपूर्ण वस्तु को एक बूँद में अनुक्रमित करने का दृष्टिकोण उतना अपमानजनक नहीं है जितना कि यहाँ के अधिकांश लोग सोचते हैं कि यह है। वास्तव में, कुछ अनुप्रयोगों के लिए, यह सबसे अच्छा डिज़ाइन हो सकता है जिसे आप कर सकते हैं, जैसा कि मैंने यहां बताया: /programming//a/12644223/1121352 ।
दरअसल, किसी वस्तु को क्रमबद्ध करने से कम से कम दो लाभ होते हैं:
1- प्रतिबाधा बेमेल को कम करना : कुछ जावा प्रकार सिर्फ एसक्यूएल में उपलब्ध नहीं हैं, खासकर यदि आप बहुत सारी कक्षाओं और कस्टम प्रकारों का उपयोग करते हैं, इस प्रकार जावा ऑब्जेक्ट्स से एसक्यूएल में आगे और पीछे परिवर्तित करना भारी परेशानी हो सकती है, और यहां तक कि अस्पष्टता भी हो सकती है।
2- आपके स्कीमा में अधिक लचीलापन । वास्तव में, रिलेशनल स्कीमा डेटा के लिए वास्तव में बहुत अच्छे होते हैं जो समान संरचना को साझा करते हैं, लेकिन अगर एक एकल वर्ग के भीतर आपकी कुछ वस्तुओं में रनटाइम पर शर्तों के आधार पर अलग-अलग गुण हो सकते हैं, तो रिलेशनल स्कीमा आपके वर्कफ़्लो को महत्वपूर्ण रूप से बाधित कर सकते हैं।
इस प्रकार, निश्चित रूप से इस दृष्टिकोण के लिए लाभ हैं (कम से कम इन दो, लेकिन निश्चित रूप से दूसरों को मैं नहीं उद्धृत करता हूं), लेकिन निश्चित रूप से भुगतान करने की बड़ी लागत यह है कि आप लगभग सभी संबंधपरक स्कीमा लाभ खो देते हैं।
हालाँकि, यदि आप अपने डेटाबेस को सावधानीपूर्वक डिज़ाइन करते हैं, तो आप दोनों दुनियाओं में सर्वश्रेष्ठ प्राप्त कर सकते हैं: आप अभी भी एक रिलेशनल स्कीमा (यानी: अद्वितीय कुंजी कॉलम) को उन विशेषताओं का उपयोग करके सेट कर सकते हैं जो प्रत्येक ऑब्जेक्ट के लिए अद्वितीय हैं, और फिर ऑब्जेक्ट को बूँद में संग्रहीत करें । इस तरह, आप अभी भी अपनी अद्वितीय विशेषताओं को देखते हुए अपनी वस्तु की तेजी से पुनः प्राप्ति सुनिश्चित कर सकते हैं, जो आपकी वस्तु की विशेषताओं से परिभाषित होती है, अतिरेक को भी कम करती है, जबकि आप प्रतिबाधा बेमेल का सफाया करते हैं और जावा वस्तुओं का पूर्ण लचीलापन रखते हैं।
एक साइड नोट के रूप में, कुछ DB निर्माताओं द्वारा रिलेशनल और ऑब्जेक्ट मॉडल को एक साथ मिलाने के कुछ प्रयास हैं, जैसे PostSQL और PostgreSQL में JSON डेटाटाइप ताकि आप सीधे JSON को किसी भी रिलेशनल कॉलम की तरह प्रोसेस कर सकें, और SQL3 और OQL (ऑब्जेक्ट) क्वेरी (भाषा) SQL में (सीमित) ऑब्जेक्ट जोड़ने के लिए समर्थन करती है।
अंत में, यह संबंधपरक मॉडल और ऑब्जेक्ट मॉडल के बीच डिजाइन और समझौता का मामला है।
/ EDIT टिप्पणियों को पढ़ने के बाद: निश्चित रूप से, यदि आपका डेटा खोज योग्य ("क्वेरी योग्य") होना चाहिए, तो आपको अपने डेटा को ब्लॉब के रूप में संग्रहीत नहीं करना चाहिए। लेकिन अगर आपके डेटा के कुछ हिस्सों का पता लगाने योग्य नहीं है , बल्कि किसी प्रकार का मेटा-डेटा है, तो इस डेटा भाग को एक बूँद के अंदर एक ऑब्जेक्ट के रूप में संग्रहीत करना एक अच्छा समाधान हो सकता है, खासकर अगर इस मेटा-डेटा की लचीली संरचना है और वस्तु से वस्तु में बदल सकता है।