के बीच कई से कई पर हटाएं मैं SQL सर्वर में एक ही तालिका के बीच कई से अधिक संबंध बनाने की कोशिश कर रहा हूं।कैस्केड एक ही तालिका
मेरे पास कॉलम ObjectId
और Name
कॉलम के साथ एक तालिका Object
है।
संबंध इन नियमों का पालन करती:
- एक बच्चे कई माता पिता
- हो सकता है एक माता पिता के कई बच्चों हो सकता है
- ObjectA ObjectB और ObjectB का एक बच्चा हो सकता है ObjectA का एक बच्चा हो सकता है
- लेकिन एक वस्तु ही का एक सीधा बच्चा नहीं हो सकता
तो मैं एक दूसरी तालिका बनानेकॉलम ParentId
और ChildId
के साथऔर निश्चित रूप से मैं इन संबंधों को कैस्केड द्वारा हटा देना चाहता हूं।
लेकिन जब मैं एसक्यूएल सर्वर में इस कोशिश मैं
त्रुटि तालिका 'tblADMembership' पर चक्र या एक से अधिक झरना रास्तों का कारण हो सकता का परिचय विदेशी कुंजी बाधा 'FK_ObjectRelation_Object1' मिलता है। किसी भी कार्रवाई को हटाएं या अद्यतन पर कोई क्रिया निर्दिष्ट करें, या अन्य विदेशी कुंजी बाधाओं को संशोधित करें।
एसक्यूएल सर्वर कॉम्पैक्ट में मैं मिल
निर्देशात्मक संबंध एक चक्रीय संदर्भ जिसकी अनुमति नहीं है का परिणाम देगा।
मैं बहुत शोध किया है और मैं समझता हूँ कि मैं क्यों इन त्रुटियों को मिलता है, लेकिन वहाँ इस के चारों ओर एक रास्ता है कि यह भी एसक्यूएल सर्वर कॉम्पैक्ट (ताकि कोई संग्रहित प्रक्रियाओं) पर काम करेंगे है? या क्या इस रिश्ते को मॉडल करने का एक बेहतर तरीका है?