Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में FOREIGN KEY कंस्ट्रेंट के साथ पैरेंट-चाइल्ड टेबल संबंध

FOREIGN KEY कंस्ट्रेंट के साथ पैरेंट और चाइल्ड टेबल के बीच One-to-Many (एक-से-अनेक) संबंध होता है।

उदाहरण: customer (पैरेंट) और orders (चाइल्ड)

mysql> SELECT * FROM Customer;
+----+---------+
| id | name    |
+----+---------+
| 1  | Gaurav  |
| 2  | Raman   |
| 3  | Harshit |
| 4  | Aarav   |
+----+---------+

mysql> SELECT * FROM orders;
+----------+----------+------+
| order_id | product  | id   |
+----------+----------+------+
| 100      | Notebook | 1    |
| 110      | Pen      | 1    |
| 120      | Book     | 2    |
| 130      | Charts   | 2    |
+----------+----------+------+

संबंध विश्लेषण

पैरेंट (Customer)चाइल्ड (Orders)संबंध
id=1 (Gaurav)order_id 100, 1101 ग्राहक → 2 ऑर्डर
id=2 (Raman)order_id 120, 1301 ग्राहक → 2 ऑर्डर
id=3 (Harshit)(कोई ऑर्डर नहीं)1 ग्राहक → 0 ऑर्डर
id=4 (Aarav)(कोई ऑर्डर नहीं)1 ग्राहक → 0 ऑर्डर

मुख्य बिंदु

  • One-to-Many: एक पैरेंट रिकॉर्ड से कई चाइल्ड रिकॉर्ड जुड़ सकते हैं
  • चाइल्ड में FK: फॉरेन की कॉलम चाइल्ड टेबल में होता है
  • पैरेंट में PK: रेफरेंस किया गया कॉलम पैरेंट में PRIMARY KEY होना चाहिए
  • कार्डिनैलिटी: 1:N (One-to-Many)

अन्य संबंध प्रकार

संबंधकार्यान्वयन
One-to-Oneचाइल्ड FK पर UNIQUE कंस्ट्रेंट
One-to-Manyमानक FK (डिफ़ॉल्ट)
Many-to-Manyजंक्शन टेबल दो FK के साथ

नोट: डेटाबेस डिजाइन में इसे "Parent-Child" या "Master-Detail" संबंध कहते हैं।

  1. - MySQL में INT और INTEGER में क्या अंतर है?

    INT और INTEGER समानार्थी हैं MySQL में INT और INTEGER पूरी तरह से समानार्थी हैं। दोनों आंतरिक रूप से INT(11) के रूप में प्रस्तुत किए जाते हैं और समान रेंज (-2147483648 से 2147483647) का समर्थन करते हैं। INT के साथ टेबल CREATE TABLE IntDemo (Id INT); DESC IntDemo; +-------+---------+------+-----+-

  1. - MySQL में TINYINT(1) और Boolean में क्या अंतर है?

    MySQL में TINYINT(1) और Boolean: कोई अंतर नहीं MySQL में BOOLEAN (या BOOL) वास्तव में TINYINT(1) का एक पर्याय (synonym) है। दोनों आंतरिक रूप से समान हैं। प्रदर्शन: Boolean कॉलम वास्तव में TINYINT(1) बनाता है CREATE TABLE DemoTable ( isMarried BOOLEAN ); DESC DemoTable; आउटपुट: +-----------+--

  1. - MySQL में != NULL और IS NOT NULL का अंतर

    NULL तुलना: != NULL बनाम IS NOT NULL MySQL में किसी मान की तुलना !=NULL से करने पर परिणाम NULL होता है, इसलिए !=NULL अर्थहीन है। सही तरीका IS NOT NULL है। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1970 ( Value int ); Query OK, 0 rows affected (0.00 sec) mysql> insert into DemoTabl