मान लीजिए कि आप विभिन्न वाहनों के क्रैश टेस्ट डेटा को स्टोर करने के लिए डेटाबेस स्थापित कर रहे थे। आप स्पीडबोट, कार और गो-कार्ट के लिए क्रैश परीक्षणों के डेटा को स्टोर करना चाहते हैं।डेटाबेस डिजाइन में विरासत की तरह कुछ
आप तीन अलग-अलग टेबल बना सकते हैं: स्पीडबोटटेस्ट, कारटेस्ट, और गोकर्टटेस्ट। लेकिन आपके कई कॉलम प्रत्येक तालिका में समान होने जा रहे हैं (उदाहरण के लिए, परीक्षण करने वाले व्यक्ति की कर्मचारी आईडी, टकराव की दिशा (सामने, पक्ष, पीछे) आदि)। हालांकि, बहुत सारे कॉलम अलग होंगे, इसलिए आप केवल एक ही टेबल में सभी टेस्ट डेटा नहीं रखना चाहते हैं क्योंकि आपके पास कुछ कॉलम होंगे जो हमेशा स्पीडबोट्स के लिए शून्य होंगे, जो कुछ हमेशा रहेगा कारों के लिए शून्य हो, और कुछ ऐसे जो हमेशा गो-कार्ट के लिए शून्य होंगे।
मान लें कि आप कुछ ऐसी जानकारी भी स्टोर करना चाहते हैं जो सीधे परीक्षण से संबंधित नहीं हैं (जैसे कि परीक्षण की गई चीज़ के डिजाइनर की कर्मचारी आईडी)। ये कॉलम "टेस्ट" टेबल में बिल्कुल सही नहीं लगते हैं, खासकर क्योंकि उन्हें उसी वाहन पर सभी परीक्षणों के लिए दोहराया जाएगा।
मुझे टेबल की एक संभावित व्यवस्था को चित्रित करने दें, ताकि आप शामिल प्रश्न देख सकें।
Speedboats id | col_about_speedboats_but_not_tests1 | col_about_speedboats_but_not_tests2 Cars id | col_about_cars_but_not_tests1 | col_about_cars_but_not_tests2 Gokarts id | col_about_gokarts_but_not_tests1 | col_about_gokarts_but_not_tests2 Tests id | type | id_in_type | col_about_all_tests1 | col_about_all_tests2 (id_in_type will refer to the id column of one of the next three tables, depending on the value of type) SpeedboatTests id | speedboat_id | col_about_speedboat_tests1 | col_about_speedboat_tests2 CarTests id | car_id | col_about_car_tests1 | col_about_car_tests2 GokartTests id | gokart_id | col_about_gokart_tests1 | col_about_gokart_tests2
इस संरचना के बारे में अच्छा/बुरा क्या है और इस तरह कुछ लागू करने का पसंदीदा तरीका क्या होगा?
क्या होगा यदि कोई ऐसी जानकारी भी है जो वाहन वाहन में आपके पास आने वाले सभी वाहनों पर लागू होती है? क्या कारटेस्ट टेबल तब कुछ दिखेंगे ...
id | vehicle_id | ... With a Vehicles table like this: id | type | id_in_type (with id_in_type pointing to the id of either a speedboat, car, or go-kart)
यह ऐसा लगता है कि यह शाही गड़बड़ हो रहा है। इस तरह कुछ कैसे स्थापित किया जाना चाहिए?
संभावित डुप्लिकेट [आप डेटाबेस में विरासत को प्रभावी तरीके से कैसे मॉडल करते हैं?] (Http://stackoverflow.com/questions/190296/how-do-you-effectively-model-inheritance-in-a-डेटाबेस) – Musa