इस तरह की एक स्कीमा की कल्पना करें।तालिका में विदेशी कुंजी शॉर्टकट
NOTE TABLE: NoteID, Note, DetailedTaskID, .....
DETAILED TASK TABLE: DetailedTaskID, WorkOrderID, .....
WORKORDER TABLE: WorkOrderID, ProjectID, .....
PROJECT TABLE: ProjectID, .....
अब इस स्कीमा के साथ देता है कहते हैं कि मैं सभी नोट है कि एक विशेष परियोजना मैं काफी मिलती है की संख्या के साथ अंत करने के लिए जुड़े हुए हैं प्राप्त करना चाहते हैं।
IE: Note JOIN DetailedTask JOIN WorkOrder JOIN Project
तो मेरे सवाल यह है, जब (यदि कभी) यह एक मेज के लिए एक "शॉर्टकट" स्तंभ जोड़ने के लिए (इस मामले ProjectID में) उचित है?
तो मूल रूप से यह करने के लिए टिप्पणी तालिका बदल रहा है: NoteID, नोट, DetailedTaskID, ProjectID
क्या मैं अभी पुष्टि कर सकता हूं? जब आप "कम खतरनाक" कहते हैं, तो मुझे लगता है कि आप एक परिदृश्य का मतलब है जहां एक बग एक विदेशी कुंजी को एक परियोजना को इंगित करने का कारण बन सकता है और एक दूसरे को इंगित कर सकता है, है ना? –
बस इतना। इस मामले में आपके कोड में एक निरीक्षण (या किसी और का कोड, बाद में जोड़ा गया) विदेशी तालिका को एक तालिका में अपडेट कर सकता है, न कि दूसरे। या, यह दूसरी तालिका में पंक्तियों में केवल कुछ डी-सामान्यीकृत विदेशी कुंजी मानों को अपडेट कर सकता है, लेकिन दूसरों को नहीं। या यह दूसरी तालिका में बहुत सारी पंक्तियों को अपडेट कर सकता है। और आप इन त्रुटियों को तुरंत, या लगातार नहीं देख सकते हैं, यदि कभी-कभी आप सामान्यीकृत तालिका से विदेशी कुंजी मान प्राप्त कर रहे हैं और कभी-कभी denormalized तालिका से प्राप्त कर रहे हैं। यह किया जा सकता है, लेकिन सुनिश्चित करें कि आपको पहले इसे करने की वास्तविक आवश्यकता है। –
आपके इनपुट के लिए बहुत बहुत धन्यवाद ... –