जैसा कि टिप्पणियों में उल्लेख किया गया है, आपको किसी भी तालिका को अन्य तालिकाओं में FK बाधाओं के साथ छोड़ना होगा, फिर आप उन तालिकाओं को छोड़ सकते हैं जिनसे लिंक किया जा रहा है।
उदाहरण:
User
id: 1
name: Mike
Address
id: 1
user_id: 1 (FK constraint to User.id table.column)
address_1: 555 Main Street
यह सेटअप एक 1:1 संबंध है (डेटा सामान्यीकरण पर अधिक ), जहां एक उपयोगकर्ता पंक्ति एक पता पंक्ति को संदर्भित कर सकती है, और क्योंकि पता पंक्ति उपयोगकर्ता पंक्ति के अस्तित्व पर निर्भर है, यदि आप उपयोगकर्ता पंक्ति को निकालने का प्रयास करते हैं, तो आपको आपके द्वारा उल्लिखित त्रुटियां दिखाई देंगी।
लेकिन अगर आप पहले पता तालिका छोड़ते हैं, तो सब कुछ अपेक्षित रूप से काम करता है क्योंकि उपयोगकर्ता तालिका किसी अन्य तालिका में एफके नहीं है।
संदर्भात्मक अखंडता सुनिश्चित करना आपकी स्कीमा के भीतर सुनिश्चित करता है कि आप अनाथ पंक्तियों के साथ समाप्त नहीं होते हैं, जो आपके डेटा संचालित एप्लिकेशन में व्याप्त हो जाएंगी।
आप निम्न आदेश भी जारी कर सकते हैं:
SET foreign_key_checks = 0;
# Do Stuff
SET foreign_key_checks = 1;
लेकिन मैं इसके खिलाफ दृढ़ता से सलाह दूंगा, क्योंकि आप अपने डेटा की संदर्भात्मक अखंडता को तोड़ सकते हैं, और एक वास्तविक गड़बड़ी में समाप्त हो सकते हैं। मैंने किसी को उद्यम के माहौल में ऐसा करते देखा है और इसे साफ करने में उन्हें हफ्तों लग गए। हालांकि, अगर आप इसे सख्ती से कर रहे हैं परीक्षण उद्देश्यों के लिए; जैसे यूनिट टेस्ट लिखना, या सिर्फ सीखना, और आप हर बार टेबल छोड़ना नहीं चाहते थे, आप ऐसा कर सकते थे:
# Because we remove the foreign key check, we can truncate in any order
SET foreign_key_checks = 0;
TRUNCATE TABLE user;
TRUNCATE TABLE address;
SET foreign_key_checks = 1;
विदेशी कुंजी बाधाओं का उपयोग करके उचित स्कीमा डिज़ाइन किसी भी डेटा संचालित एप्लिकेशन के लिए एक अच्छी नींव बनाने के रास्ते में आता है। कब उपयोग करना है, और विदेशी कुंजी बाधाओं का निर्माण कैसे करना है, यह जानने में समय लगेगा, लेकिन समय के साथ आप समझना शुरू कर देंगे। आरंभ करने का एक अच्छा तरीका है magento जैसा ओपन सोर्स प्रोजेक्ट डाउनलोड करना , वर्डप्रेस , या vbulletin और उनके स्कीमा पर एक नज़र डालें। आप MySQL वर्कबेंच का उपयोग करके इन स्कीमाओं का आत्मनिरीक्षण भी कर सकते हैं। और उनके एंटिटी-रिलेशनशिप डायग्राम देखें (ईआरडी), जो तालिकाओं के बीच लिंक को नेत्रहीन रूप से प्रदर्शित करेगा।