मैं एक रिश्ता बनाने की कोशिश कर रहा हूं जहां चार अलग-अलग हिस्सों में से कोई भी शामिल किया जा सकता है, लेकिन उसी भागों के किसी भी संग्रह को अद्वितीय के रूप में संभाला जाना चाहिए।MySQL प्रश्न - अनन्य कुंजी सही तरीके से काम नहीं कर रही है, या क्या मैं गलतफहमी कर रहा हूं?
उदाहरण: एक असाइनमेंट में एक असाइन की गई कंपनी होनी चाहिए, वैकल्पिक रूप से असाइन किया गया स्थान, कार्यसमूह और प्रोग्राम हो सकता है। किसी असाइनमेंट में किसी स्थान के बिना वर्कग्रुप नहीं हो सकता है।
मान लीजिए कि हमारे पास कंपनियां ए, बी, सी हैं; स्थान एक्स, वाई, जेड; कार्य समूहों आई, जे, कश्मीर और कार्यक्रमों 1, 2, 3
तो वैध संबंधों एक शामिल हो सकते हैं - एक्स - मैं - 1 A - Z - 2 बी - वाई सी सी - 3 बी - Z - कश्मीर
लेकिन अवैध संबंधों को शामिल किया जाएगा ए - कश्मीर (स्थान के बिना कार्यसमूह) Y - कश्मीर - 1 (कोई भी कंपनी)
तो, मेरी तालिका बनाने के लिए, मैं
बना लिया है 10मैं इस अगर वहाँ एक कार्यसमूह (जो मैं खुशी से प्रोग्राम के या ट्रिगर्स के साथ, मुझे लगता है कि कर सकते हैं)
हालांकि एक स्थान के लिए एक काम के और neccessity के अलावा अपने सभी संबंधों को संभालने होगा आंकड़ा है, जब मैं परीक्षण यह स्कीमा, यह मुझे निम्नलिखित में प्रवेश करने की अनुमति देता है ...
INSERT INTO test VALUES (1, null, null, null), (1, null, null, null);
... शिकायत के बिना। मुझे लगता है कि (1, शून्य, शून्य, शून्य) खुद के बराबर नहीं है क्योंकि नल शामिल हैं। यदि ऐसा है, तो क्या मैं इस संबंध को संभाल सकता हूं?
किसी भी मदद की सराहना की जाएगी!
स्तंभों की स्थापना "शून्य नहीं" काम करेगा होना करने के लिए, लेकिन यह भी रोब की तरह डेटा वस्तुओं के अलावा की आवश्यकता होगी और मैं डेटाबेस सही ढंग से आवश्यकताओं सूचीबद्ध मिलान करने के लिए अनुमति देने के लिए सुझाव दिया है - अगर शून्य अनुमति नहीं है, तो आप एक की जरूरत है 'कोई फूड' मान जो खाद्य तालिका में एक वैध प्रविष्टि है एफके का संदर्भ है। –
इंडेक्स को आपकी प्राथमिक कुंजी बनाने के बारे में: केवल समस्या यह है कि आप एक ऑटो-क्रिकेशन कॉलम नहीं बना सकते हैं जब तक यह प्राथमिक कुंजी का हिस्सा न हो। यही वह मुद्दा है जो मैं कर रहा हूं। –
पीके के पूर्ण कॉलम भाग बनाने के साथ एक और समस्या यह है कि वे पूर्ण नहीं होते हैं और इसके बजाय आपको डिफ़ॉल्ट मान के रूप में 0 या खाली स्ट्रिंग मिलती है। – Rafa