अनुभव बहुत मायने रखता है, लेकिन टेबल डिज़ाइन के संदर्भ में आप बहुत कुछ सीख सकते हैं कि कैसे हाइबरनेट और ग्रेल्स जैसे ओआरएम यह देखने के लिए काम करते हैं कि वे चीजें क्यों करते हैं। के अतिरिक्त:
विभिन्न प्रकार के डेटा को अलग रखें - अपने ऑर्डर टेबल में पते स्टोर न करें, उदाहरण के लिए अलग पते की तालिका में एक पते से लिंक करें।
मैं व्यक्तिगत रूप से प्रत्येक टेबल पर एक पूर्णांक या लंबी सरोगेट कुंजी रखना पसंद करता हूं (जो डेटा रखता है, न कि विभिन्न तालिकाओं को एक साथ जोड़ता है, ई, जी, एम: एन रिश्तों) जो प्राथमिक कुंजी है।
मुझे एक निर्मित और संशोधित टाइमस्टैम्प कॉलम भी पसंद है।
सुनिश्चित करें कि किसी भी क्वेरी में आप "जहां कॉलम = वैल" करते हैं वह प्रत्येक कॉलम में एक इंडेक्स है। शायद डेटा प्रकार के लिए दुनिया में सबसे सही सूचकांक नहीं है, लेकिन कम से कम एक सूचकांक।
अपनी विदेशी कुंजी सेट करें। अपनी वस्तु संरचना के आधार पर DELETE और MODIFY नियमों पर जहां या तो झरना, या अशक्त सेट करने के लिए प्रासंगिक है, इसलिए आपको अपने ऑब्जेक्ट ट्री के 'हेड' पर केवल एक बार डिलीट करने की आवश्यकता है स्वचालित रूप से हटा दिया गया)।
यदि आप अपने कोड को संशोधित करना चाहते हैं, तो आप अपने DB स्कीमा को संशोधित करना चाहते हैं - उदाहरण के लिए, यह "ग्राहक" क्षेत्र है, यह "ऑर्डर" क्षेत्र है, और यह "उत्पाद" क्षेत्र है, और ज्वाइन / लिंक टेबल का उपयोग करें उनके बीच, भले ही वे 1: n संबंध हैं, और हो सकता है कि महत्वपूर्ण जानकारी की नकल करें (यानी, उत्पाद का नाम, कोड, मूल्य अपने order_details तालिका में डुप्लिकेट करें)। सामान्यीकरण पर पढ़ें।
किसी और के ऊपर या कुछ के लिए बिल्कुल विपरीत की सिफारिश करेंगे: पी - कुछ चीजें करने के लिए कभी भी एक सही तरीका नहीं है एह!