Belongs To // से संबंधित
belongs to
एसोसिएशन दूसरे मॉडल के साथ एक-से-एक कनेक्शन स्थापित करता है, जैसे कि declare मॉडल का प्रत्येक उदाहरण दूसरे मॉडल के एक उदाहरण से “belongs to” होता है।
उदाहरण के लिए, यदि आपके एप्लिकेशन में उपयोगकर्ता और कंपनियां शामिल हैं, और प्रत्येक उपयोगकर्ता को ठीक एक कंपनी को सौंपा जा सकता है, तो निम्न प्रकार उस संबंध का प्रतिनिधित्व करते हैं। यहाँ ध्यान दें कि, उपयोगकर्ता
ऑब्जेक्ट पर, CompanyID
के साथ-साथ Company
दोनों होते हैं। डिफ़ॉल्ट रूप से, CompanyID
का उपयोग उपयोगकर्ता
और कंपनी
तालिकाओं के बीच एक विदेशी कुंजी संबंध बनाने के लिए किया जाता है, और इस प्रकार कंपनी की आंतरिक संरचना( inner struct) को भरने के लिए उपयोगकर्ता
struct में शामिल किया जाना चाहिए।
// `User` belongs to `Company`, `CompanyID` is the foreign key |
आंतरिक संरचना(inner struct) को पॉप्युलेट(populating) करने के विवरण के लिए इजर लोडिंग(Eager Loading) का संदर्भ लें।
Override Foreign Key
संबंध से संबंधित परिभाषित करने के लिए, विदेशी कुंजी(foreign key) मौजूद होनी चाहिए, डिफ़ॉल्ट विदेशी कुंजी स्वामी के प्रकार के नाम और उसके प्राथमिक फ़ील्ड नाम का उपयोग करती है।
उपरोक्त उदाहरण के लिए, उपयोगकर्ता
मॉडल को परिभाषित करने के लिए जो कि कंपनी
से संबंधित है, विदेशी कुंजी (foreign key)CompanyID
होनी चाहिए
GORM विदेशी कुंजी( foreign key) को अनुकूलित करने का एक तरीका प्रदान करता है, उदाहरण के लिए:
type User struct { |
Override References
संबंध से संबंधित होने के लिए, GORM आमतौर पर मालिक के प्राथमिक क्षेत्र(primary field) को विदेशी कुंजी(foreign key) के मान के रूप में उपयोग करता है, उपरोक्त उदाहरण के लिए, यह कंपनी
का फ़ील्ड आईडी
है।
जब आप किसी उपयोगकर्ता को किसी कंपनी को असाइन करते हैं, तो GORM कंपनी की ID
को उपयोगकर्ता के CompanyID
फ़ील्ड में सहेज(save) देगा।
आप इसे references
टैग से बदल सकते हैं, जैसे:
type User struct { |
ध्यान दें GORM आमतौर पर संबंध का अनुमान लगाता है क्योंकि
has one
यदि ओवरराइड विदेशी कुंजी नाम पहले से ही स्वामी के प्रकार में मौजूद है, तो हमेंreferences
को निर्दिष्ट करने की आवश्यकता हैbelongs to
संबंध है।
type User struct { |
CRUD with Belongs To
रिलेशन्स के साथ काम करने के लिए कृपया एसोसिएशन मोड चेकआउट करें
Eager Loading
जीओआरएम उत्सुक लोडिंग की अनुमति देता है प्रीलोड
या जॉइन
के साथ संबंधित है, विवरण के लिए प्रीलोडिंग (Eager loading) देखें
FOREIGN KEY Constraints
आप टैग constraint
के साथ OnUpdate
, OnDelete
कंस्ट्रेंट सेट कर सकते हैं, इसे GORM के साथ माइग्रेट करते समय बनाया जाएगा, उदाहरण के लिए:
type User struct { |