लारवेल के एलोक्वेंट के साथ सिंगल टेबल इनहेरिटेंस को लागू करना
डेटाबेस मॉडल के साथ काम करते समय, इनहेरिटेंस संबंधित संस्थाओं के पदानुक्रम को परिभाषित करने का एक तरीका प्रदान करता है। हालाँकि, जब सिंगल और मल्टी टेबल इनहेरिटेंस के बीच चयन किया जाता है, तो बाद वाला अक्सर अधिक कुशल और लचीला समाधान बनकर उभरता है।
सिंगल टेबल इनहेरिटेंस
वैचारिक रूप से सरल होते हुए भी, सिंगल टेबल इनहेरिटेंस के लिए सभी प्रकार के सभी कॉलमों को एक ही तालिका में संग्रहीत करने की आवश्यकता होती है, जिससे संभावित NULL मान प्रसार होता है। यह डेटाबेस प्रदर्शन को प्रभावित कर सकता है, विशेष रूप से बड़े डेटासेट के साथ। विशिष्ट मॉडल प्रकार. लारवेल का एलोक्वेंट फ्रेमवर्क इन संबंधों को निर्बाध रूप से प्रबंधित करने के लिए बहुरूपी संबंध प्रदान करता है। बहुरूपी संबंध:
वर्ग पोस्ट सुवक्ता का विस्तार करता है { सार्वजनिक समारोह पोस्ट करने योग्य() { $this->morfTo() लौटाएँ; } }
प्रश्न/लेख मॉडल
प्रत्येक विशिष्ट पोस्ट प्रकार, जैसे प्रश्न या लेख, पोस्ट से विस्तारित होता है और बेस मॉडल के साथ एक मॉर्फवन संबंध को परिभाषित करता है:
वर्ग प्रश्न पोस्ट का विस्तार करता है { सार्वजनिक समारोह पोस्ट() { वापसी $यह->मॉर्फवन('पोस्ट', 'पोस्टेबल'); } }
class Post extends Eloquent {
public function postable() {
return $this->morphTo();
}
}
सभी पोस्ट पुनर्प्राप्त करें:
$posts = Post::all();
class Question extends Post {
public function post() {
return $this->morphOne('Post', 'postable');
}
}
$questions = प्रश्न::सभी();किसी पोस्ट से प्रश्न-विशिष्ट कॉलम पुनर्प्राप्त करें:
$question_column = $post->postable->question_column;अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3