2010-07-18 21 views
5

कई दृष्टिकोण कैसे संबंध डेटाबेसरिलेशनल डेटा: इकाई विरासत दृष्टिकोण। सबसे अच्छा अभ्यास

उदाहरण के लिए वहाँ व्यक्ति इकाई (20 बुनियादी विशेषताएँ), छात्र इकाई है (व्यक्ति लेकिन कई नए विशिष्ट क्षेत्रों के रूप में ही मौजूद हैं), कर्मचारी में संस्थाओं पदानुक्रम स्टोर करने के लिए (हैं व्यक्ति के समान ही है लेकिन कुछ नए क्षेत्र मौजूद हैं) आदि

आप सलाह का उपयोग करते हैं (और उपयोग करने के लिए नहीं) निम्नलिखित डेटा मॉडलिंग दृष्टिकोण:

  • एक बड़ा तालिका सभी संभव क्षेत्रों + personType मार्कर क्षेत्र (छात्र या कर्मचारी)
  • टेबल विरासत
  • साथ
  • एक एक्सएमएल क्षेत्र (या शायद एक और डेटा प्रकार) के साथ तालिका सभी कस्टम फ़ील्ड
  • कुछ बाकी है लेकिन यह भी संबंधपरक स्टोर करने के लिए ...

अग्रिम धन्यवाद!

उत्तर

6

डेटाबेस मॉडल तथ्यों, वस्तुओं नहीं, और प्रत्येक तालिका को अपेक्षाकृत आत्मनिर्भर तथ्यों का सेट करना चाहिए। इस का परिणाम यह है अपने टेबल कुछ इस तरह दिखना चाहिए है:

person { person_id PK, name, dob, ... } 
student { person_id PK FK(person.person_id), admission_id, year_started, ... } 
employee { person_id PK FK(person.person_id), salary_bracket, ... } 

एक अतिरिक्त परिणाम यह है कि एक छात्र भी एक कर्मचारी है, जो शायद मॉडल वास्तविक जीवन होगा एक विरासत ग्राफ की तुलना में करीब हो सकता है।

3

hibernate inheritance mapping docs पर एक नज़र डालें। वहां आपको तीन आम दृष्टिकोण और प्रत्येक के पेशेवरों और विपक्ष की एक सूची मिलती है।

0

यदि आप अपनी कक्षाओं को लागू करने के लिए ओआरएम का उपयोग कर रहे हैं, तो आप जिस ओआरएम टूल्स का उपयोग कर रहे हैं, वह आपको विकल्प, आम तौर पर दो विकल्प, एक वर्ग एक टेबल या एक अभिभावक वर्ग एक टेबल और प्रत्येक बच्चों के वर्ग के लिए प्रत्येक तालिका प्रदान करेगा। मैं Devexpress.com से XPO का उपयोग कर रहा हूं, एक ओआरएम ढांचा। यह इन दो विकल्पों की पेशकश करता है।

यदि आप ओआरएम का उपयोग करते हैं, तो मुझे डर है कि कोई अन्य सामान्य विकल्प नहीं हैं।

यिंग

संबंधित मुद्दे