मैं दो स्तंभों के लिए एक अनूठा सूचकांक बाधा पैदा करने के लिए कोशिश कर रहा हूँ, लेकिन केवल जब एक और स्तंभ उदाहरण के लिए मान 1 होता है, column_1
और column_2
अद्वितीय होना चाहिए केवल जब active = 1
। कोई पंक्ति शामिल active = 0
एक और पंक्ति के साथ column_1
और column_2
के लिए मूल्यों को साझा कर सकते, क्या active
के लिए अन्य पंक्ति का मूल्य है की परवाह किए बिना। लेकिन पंक्तियां जहां active = 1
column_1
या column_2
के मानों को अन्य पंक्तियों के साथ साझा नहीं कर सकता है जिसमें active = 1
है।अद्वितीय बाधा, केवल जब एक क्षेत्र में एक विशिष्ट मान
मैं "शेयर" से क्या मतलब उसी स्तंभ (ओं) में एक ही मूल्य (रों) होने दो पंक्तियों है। उदाहरण: row1.a = row2.a और row1.b = row2.b. मान केवल तभी साझा किए जाएंगे जब पंक्ति 1 में दोनों कॉलम पंक्ति 2 में अन्य दो स्तंभों से मेल खाते हों।
मुझे उम्मीद है कि मैंने खुद को स्पष्ट कर दिया है। : \
मुझे आईआरसी पर एक समान सुझाव मिला; एक सक्रिय टेबल और एक निष्क्रिय तालिका बनाएँ। लेकिन जिस तरह से आप इसे डालते हैं, वह अधिक समझ में आता है; एक ऐतिहासिक टेबल और एक सक्रिय टेबल है। हालांकि, इस तालिका में बहुत से फ़ील्ड हैं और ऐसा लगता है कि उन फ़ील्ड को दो तालिकाओं में डुप्लिकेट करना गलत काम होगा। आप कैसे सुझाव देंगे कि मैं इस तरह की अनावश्यकता से बचें? – Sam
एक छोटा सा denormalization एक लंबा रास्ता तय कर सकते हैं, तो डुप्लिकेट परिभाषाओं के बारे में चिंता मत करो। बेशक, आपको मूल तालिका में भी ऐतिहासिक तालिका में कोई भी बदलाव करना होगा, इसलिए यह कुछ ओवरहेड है, लेकिन, IMHO यह स्वच्छ डेटा के लायक है। – SWeko
हम्म, क्या होगा यदि मैं केवल उस डेटा को अलग करना चाहता हूं जिसके लिए अद्वितीय अनुक्रमण की आवश्यकता है? टेबल: mydata, mydata_active, mydata_inactive। इस प्रकार mydata में प्राथमिक कुंजी और डेटा कॉलम होते हैं।और, mydata_active और mydata_inactive में केवल वे कॉलम होंगे जिन्हें विशिष्ट रूप से अनुक्रमित किया जाना चाहिए और एक विदेशी कुंजी जो mydata का संदर्भ देती है। यह एक और तरीका है, लेकिन इसके लिए एक अतिरिक्त (तीसरी) तालिका की आवश्यकता है। – Sam