2008-09-04 14 views
21

क्या किसी को कागजात/किताबें/आदि के बारे में पता है। डेटाबेस के लिए दस्तावेज़ पैटर्न? उदाहरण के लिए, अंगूठे का एक आम नियम यह है कि प्रत्येक तालिका में प्राथमिक कुंजी होनी चाहिए और कुंजी devoid of information content होनी चाहिए। तो मैं सोच रहा था कि क्या किसी ने रिलेशनल डेटाबेस डिजाइन करने के लिए डिज़ाइन पैटर्न के बारे में कोई पुस्तक या प्रकाशित कागजात लिखे हैं?डाटाबेस पैटर्न


@Gaius,

सवाल है कि एक डेटाबेस डिजाइनर वजन करने की जरूरत है कि - डेटाबेस संरचना के संभावित स्थिरता क्या है? लंबे समय तक पर्याप्त क्षितिज को देखते हुए कुछ भी स्थिर नहीं है। या बातचीत करने के लिए, एक लंबे समय तक पर्याप्त क्षितिज दिया, सब कुछ बदलने के अधीन है। एक सरोगेट कुंजी (सिद्धांत में) कभी भी इसका अर्थ नहीं बदलना चाहिए क्योंकि इसका अर्थ कभी शुरू नहीं हुआ था।

मुझे लगता है कि उस विशेष डिजाइन परिदृश्य में विचार करने वाली दूसरी बात यह है कि प्राथमिक कुंजी को कौन देखेगा? यदि प्राथमिक कुंजी कुछ ऐसा है जो अंत उपयोगकर्ताओं को वास्तव में संदर्भित करने की आवश्यकता होगी तो इसे समझने के लिए यह समझ में आता है कि वे कुछ समझ सकते हैं। लेकिन मैं कई मामलों के बारे में नहीं सोच सकता जहां एक अंतिम उपयोगकर्ता को प्राथमिक कुंजी देखने की आवश्यकता होती है; आमतौर पर डीबी इंजन को कुछ परिचालनों को तेज करने की अनुमति देने के लिए प्राथमिक कुंजी मौजूद होती है।

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

उत्तर

10

विशेष रूप से, कुंजी के बारे में: मैं अजीब विचार से असहमत हूं कि कुंजी बिना अर्थ के होनी चाहिए। आम तौर पर, मैं डेटाबेस को तथ्यों का संग्रह मानता हूं; जैसे ही आप मनमानी संख्याओं (जैसे उत्पन्न कुंजी) और अन्य अप्रासंगिक जानकारी जोड़ना शुरू करते हैं, यह एक चेतावनी संकेत होना चाहिए। मैं कुंजी पर अधिक के लिए this articly by Joe Celko की सलाह देते हैं।

अधिक सामान्य नोट: स्कीमा डिजाइन के लिए

सुझाव/विभिन्न व्यवसायों के लिए डेटा मॉडल: डेविड सी सूखी घास: डेटा मॉडल पैटर्न: सोचा बल्कि वर्ष की कन्वेंशनों, लेकिन वहाँ एक कारण है कि यह प्रिंट में अभी भी है
http://www.dorsethouse.com/books/dmp.html

हो सकता है कि बहुत नहीं पैटर्न की तरह, लेकिन अभी भी बहुत अच्छा: स्टीफ़न Faroult, पीटर रॉबसन: एसक्यूएल http://oreilly.com/catalog/9780596008949/

की कला

एक और एक जो मैं सिफारिश कर सकते हैं: वादिम Tropashko: एसक्यूएल डिजाइन पैटर्न - विशेषज्ञ गाइड प्रोग्रामिंग SQL को http://www.rampant-books.com/book_2006_1_sql_coding_styles.htm

व्यवस्थित डेटा मॉडलिंग के बारे में पाठ पुस्तक: ग्रीम Simsion & ग्राहम विट, "डेटा मॉडलिंग अनिवार्य" http://www.elsevierdirect.com/product.jsp?isbn=9780126445510

शायद आप वास्तव में "शैली मार्गदर्शिका" ढूंढ रहे हैं? मुझे लगता है कि मामला: जो सेलको: एसक्यूएल प्रोग्रामिंग शैली http://www.elsevierdirect.com/product.jsp?isbn=9780120887972

+5

'प्राकृतिक' कुंजी का उपयोग करने का जोखिम यह है कि वे बदल सकते हैं; सरोगेट कुंजी बदल नहीं सकते हैं। सेल्को का लेख कोई मूल्य निर्धारण नहीं करता है जिस पर बेहतर है। यह भी देखें http://stackoverflow.com/questions/159087/composite-primary-keys-versus-unique-object-id-field#159247 –

2

बिल्कुल जवाब देने के लिए: yes। 'अच्छे' डेटाबेस डिज़ाइन पर लिखी गई जानकारी के * * हैं। यद्यपि आप अंगूठे का उदाहरण नियम निश्चित रूप से संदिग्ध है।

4

ई.एफ. कॉड और सीजे तिथि द्वारा पुस्तकें सबसे स्पष्ट उत्तर हैं। मैंने इस विशेष पुस्तक को नहीं पढ़ा है लेकिन मैं लेखकों से परिचित हूं, यह काफी अच्छा है।

Applied Mathmatics for Database Professionals Lexx de Haan और Toon Koppelaars द्वारा।

+0

तो स्पष्ट है कि आपको उन्हें नाम देने के लिए आवश्यक नहीं मिला? – brian

3

वास्तव में, मुझे लगता है कि अंगूठे का नियम एक किराए जब भी संभव हो के बजाय एक प्राकृतिक कुंजी का उपयोग करने में आम तौर पर होता है ...

तो अगर मेरे पास है, उदाहरण के लिए, एक चालान की मेज और एक InvoiceDetail तालिका के लिए, हम कर सकते हैं शायद पहले की ओर हमारी प्राथमिक कुंजी के रूप में InvoiceNumber का उपयोग करें। यह हमारे डेटा में पहले से मौजूद है और (मुझे लगता है?) अद्वितीय होगा। दूसरी तालिका के लिए, हम शायद सरोगेट कुंजी की आवश्यकता में फंस जाएंगे, भले ही यह चालान संख्या में समग्र रूप से शामिल हो या नहीं।

किसी भी घटना में, मूल प्रश्न पर वापस ... होमेटोस्ट का लिंक आपको शुरू करना चाहिए।

- केविन फेयरचाइल्ड

+1

प्राकृतिक कुंजी बनाम सरोगेट कुंजी का उपयोग करने का विचार एक प्रमुख बहस है। कई लोग तर्क देंगे कि आपको हमेशा सरोगेट कुंजी का उपयोग करना चाहिए। –

1

व्यापार अर्थ ("प्राकृतिक कुंजी") निश्चित रूप से इसके लाभों पर है, लेकिन यह अपने डेटाबेस पुनर्रचना बहुत कठिन बना सकते हैं के साथ प्राथमिक कुंजी का उपयोग करना। सावधानी बरतें, विशेष रूप से यदि नेटवर्क के ढांचे को समय के साथ बदलना है तो विश्वास करने का कोई कारण है।

2

SQL Anti-Patterns विधेयक Karwin द्वारा (सूखा नहीं) को पढ़ने के लिए बहुत आसान है और विभिन्न संभावित नुकसान की एक संख्या काफी स्पष्ट संदर्भ में बताते हैं, आप अपने आप को कैसे मिल सकती है उन्हें प्रयोग , और सही तरीके से कैसे/क्यों करें।

+0

पॉइंटर के लिए धन्यवाद। –

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