2009-09-26 16 views

उत्तर

3

जब तक आप दो मुख्य तालिकाओं के बीच तालिका के लिए मॉडल नहीं बनाते, तो आपका एकमात्र विकल्प डीएओ (डेटाबेस एक्सेस ऑब्जेक्ट) का उपयोग करना और इसके साथ एसक्यूएल निर्दिष्ट करना है।

देखें कि ब्लॉग डेमो इस कार्य को कैसे पूरा करता है। मॉडल के बीच कई कनेक्शन के लिए कई सेटअप करने के लिए

3

उपयोग MANY_MANY संबंध प्रकार (एक साहचर्य तालिका एक-से-कई रिश्तों में अनेक-से-अनेक संबंध तोड़ने के लिए की जरूरत है) और अब आप सक्रिय के सभी संबंधित कार्यों का उपयोग कर सकते हैं रिकॉर्ड्स

Yii Framework - The Definitive Guide to Yii: Working with Databases-Relational Active Record

0
..

आप mysql level..by में है कि सेट कर सकते हैं अप phpmyadmin में प्रत्येक टेबल के नीचे रिलेशनल दृश्य पर जाकर और मॉडल वर्ग के भीतर संबंधों में आवश्यक संबंधपरक condition..and उपयोग MANY_MANY प्रदान

1

निम्नलिखित विस्तार तुम क्या चाहते है ... Yii Framework - Extension: cadvancedbehavior

एक महत्वपूर्ण बात गौर करने योग्य प्रत्येक अद्यतन पर, उस एक्सटेंशन पिछले सभी रिकॉर्ड को साफ करता और नए बनाता है। इसलिए जब मैं इंटरमीडिएट्री टेबल में विदेशी कुंजी के अलावा अतिरिक्त डेटा होता हूं तो मैं इसका उपयोग नहीं करता।

0

प्रश्न बहुत आम है।

आम तौर पर कई से संबंधों के साथ डेटा घटक क्रमशः और स्वतंत्र रूप से दिखाई देते हैं। तो आपको बस एक के बाद एक डालने की कार्रवाई करने की जरूरत है।

यदि आपके रिश्ते को निर्भर अपडेट की आवश्यकता है तो आपको डेटाबेस स्तर पर उपयोगकर्ता SQL triggers होना चाहिए। इससे डेटा की अखंडता सुनिश्चित हो जाएगी और एप्लिकेशन के व्यावसायिक तर्क में काफी अच्छा अलगाव होगा। (और जैसे वहाँ 2-3 एआर मॉडलों के साथ हेरफेर) और अनुकरण

CREATE TRIGGER some_trigger 
    AFTER UPDATE ON some_table 
    ... 
END IF; 

ऐसा ही एक तरीका पीएचपी स्तर पर एक तार्किक मॉडल में संबंधपरक डेटा incapsulate है एसक्यूएल उस में तर्क से चलाता है।

+0

ट्रिगर्स रखरखाव के लिए भयानक हैं। सबसे पहले आप डेटाबेस fks और cascading का उपयोग करने पर विचार कर सकते हैं ... ट्रिगर वास्तव में अंतिम विकल्प हो सकता है। – armandomiani

+1

आपको मजाक कर रहे हैं, है ना? एफके कैस्केडिंग वास्तव में ट्रिगर्स हैं! लेकिन आप उन्हें "डालने पर" उपयोग नहीं कर सकते हैं। इसके अलावा MySQL का MyIsam इंजन FKs का समर्थन नहीं करता है उदा। चिंताओं को बनाए रखने के रूप में, मुझे नहीं पता कि डीबी प्रक्रिया को बनाए रखने में क्या समस्या है, खासकर अगर यह एक छोटा सा है (और एक एफके कैस्केडिंग के समान है) –