मेरे पास एक ऐसा एप्लिकेशन है जो उपयोगकर्ताओं को विभिन्न रूपों (सर्वेक्षण) बनाने देता है और फिर उन्हें भर देता है। (इसलिए यह कागज के लिए एक विकल्प है)।सबसे अच्छा क्या है: 1 टेबल प्रति रिकॉर्ड या 1 टेबल विदेशी कुंजी से जुड़े सभी रिकॉर्ड के साथ?
यहाँ वर्तमान मॉडल मैं अनुप्रयोग में उपयोग कर रहा हूँ है:
Table 1)
+-------------------------+
| SURVEYS TABLE |
+----+------+-------------+
| ID | name | description |
+----+------+-------------+
Table 2)
+-----------------------------------+
| $[name_of_the_survey] |
+----+-------+------+-------+-------+
| ID | field | type | value | items |
+----+-------+------+-------+-------+
Table 3)
+--------------------------------------+
| $[name_of_the_survey] _records |
+----+---------------------------------+
| ID | columns specific to each survey |
+----+---------------------------------+
तो मूल रूप से जब कोई उपयोगकर्ता एक सर्वेक्षण बनाता है, कार्यक्रमों में सर्वेक्षण टेबल एक रिकार्ड सम्मिलित करता है और फिर 2 टेबल बनाता है:
तालिका (2) फॉर्म तालिका (3) के रिकॉर्ड्स के लिए तालिका के लिए तालिका (2), जिसमें स्तंभ तालिका (2) पंक्तियों के अनुरूप होते हैं।
यह काम करता है लेकिन कुछ सीमाएं हैं। उदाहरण के लिए, जब आप तालिका (2) में फ़ील्ड जोड़ना चाहते हैं, तो उसे तालिका (3) सामग्री को पढ़ना होगा, इसे वर्चुअल टेबल पर सहेजना होगा, पिछली तालिका (3) छोड़ें और एक नया बनाएं। यह एक प्रदर्शन समस्या हो सकती है जब तालिका (3) में बहुत सारे रिकॉर्ड होते हैं।
तो मेरा सवाल है ... क्या कोई बेहतर डेटाबेस डिज़ाइन है?
अभिभावक तालिकाओं की एक विदेशी कुंजी वाली तालिका में कॉलम रखने के बजाय नई तालिकाओं को बनाने का क्या कारण है? – Scottie
अच्छी तरह से, सभी तालिका (2) को एक ही तालिका में एग्रीगेट किया जा सकता है, तालिका में एक विदेशी कुंजी जोड़ना (1)। तालिका (3) हालांकि, क्योंकि मैं पहले से नहीं जानता कि सर्वेक्षण में कितने और कितने फ़ील्ड होंगे। – Tivie