2009-05-30 11 views
13

मैं वर्तमान में इकाई फ्रेमवर्क के साथ विरासत का उपयोग करने की संभावना के बारे में पढ़ रहा हूं। कभी-कभी मैं डेटा रिकॉर्ड टाइप करने के लिए एक दृष्टिकोण का उपयोग करता हूं और मुझे यकीन नहीं है कि मैं टीपीटी या टीपीएच या किसी का उपयोग नहीं करूँगा ...इकाई फ्रेमवर्क विरासत: टीपीटी, टीपीएच या कोई नहीं?

उदाहरण के लिए ... मेरे पास एक ईकॉमर्स शॉप है जो शिपिंग, बिलिंग और वितरण पता जोड़ती है

मैं एक पते तालिका है:

RecordID 
AddressTypeID 
Street 
ZipCode 
City 
Country 

और एक मेज AddressType

RecordID 
AddressTypeDescription 

तालिका डिजाइन जी के लिए अलग है erneral डिजाइन जब लोग टीपीटी या TPH दिखावा ... यह मतलब है विरासत के बारे में सोचने के लिए एक जब किसी भी मदद के लिए इस तरह एक दृष्टिकोण ..

मुझे आशा है कि यह समझ में आता है ...

धन्यवाद होने ...

उत्तर

25

आपको मेरा EF Tips Series देखना चाहिए।

एक कहा जाता How to choose an inheritance strategy आप कुछ और अधिक जानकारी

आशा देना चाहिए इस

में मदद करता है एलेक्स

9

डेटाबेस में विरासत का प्रतिनिधित्व करने के तरीके पर विचार करते समय, आपको कुछ चीजों पर विचार करने की आवश्यकता है।

यदि आपके पास कई अलग-अलग उप-वर्ग हैं तो आप उन जटिल प्रकारों से जुड़े प्रश्नों में बहुत से अतिरिक्त जुड़ सकते हैं जो प्रदर्शन को नुकसान पहुंचा सकते हैं। टीपीएच का एक बड़ा फायदा यह है कि आप पदानुक्रम में सभी प्रकार के लिए एक टेबल से पूछते हैं और यह प्रदर्शन के लिए वरदान है, खासकर बड़े पदानुक्रमों के लिए। इस कारण से मैं अधिकांश परिदृश्यों में उस दृष्टिकोण का पक्ष लेता हूं

हालांकि, टीपीएच का मतलब है कि अब आपके पास NOT NULL फ़ील्ड उप प्रकार के लिए नहीं हो सकते हैं क्योंकि सभी प्रकार के सभी फ़ील्ड एक ही टेबल में हैं, डेटा अखंडता की ज़िम्मेदारी को दबाते हुए आपका आवेदन। यद्यपि यह प्रैक्टिस में भयानक लग सकता है, लेकिन मुझे यह बहुत बड़ा प्रतिबंध नहीं मिला है।

हालांकि अगर मैं प्रत्येक प्रकार के लिए बहुत से फ़ील्ड थे और पदानुक्रम में प्रकारों की संख्या कम होने की संभावना है, तो इसका मतलब है कि प्रदर्शन में शामिल होने के साथ कोई समस्या नहीं थी, और आपको बेहतर डेटा अखंडता मिलती है।

ध्यान दें कि ईएफ और अन्य ओआरएम के फायदों में से एक यह है कि आप अपने आवेदन को प्रभावित किए बिना ट्रैक को अपने दिमाग में बदल सकते हैं ताकि निर्णय पत्थर में पूरी तरह से नक्काशीदार होने की आवश्यकता न हो।

अपने उदाहरण में, यह एक विरासत रिश्ता है प्रतीत नहीं होता है, यह पता प्रकार से कई लोगों के लिए एक एक पतों

के लिए यह अपनी कक्षाओं के बीच निम्नलिखित की तरह कुछ का प्रतिनिधित्व किया जाएगा जैसा दिखता है:

Address.AddressType 
AddressType.Addresses 
4

कीथ संकेत के रूप में, इस article एफई मापता बुरी में टीपीटी पता चलता है, लेकिन मैं इसे करने की कोशिश नहीं की है खुद।

-3

this article के लिए देखो। विरासत उपयोग के कुछ पहलुओं पर विचार किया जाता है।

+0

लिंक अब मान्य नहीं है। कृपया इस उत्तर को सही या हटाएं –

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