mysql - How to use two primary keys into one foreign key? -
mysql & gt; CREATE TABLE मेहमान (- & gt; आईडी पूर्णांक (11) नहीं NULL AUTO_INCREMENT, - & gt; first_name varchar (55) डिफ़ॉल्ट शून्य, - & gt; last_name varchar (55) डिफ़ॉल्ट शून्य, - & gt; ईमेल varchar (100) डिफ़ॉल्ट शून्य, - & gt; role_type पूर्णांक (4) डिफ़ॉल्ट 4, - & gt; प्रारंभ_तिथि तिथि, - & gt; EXPIRY_DATE तिथि, - & gt; कारण ब्लॉब, - & gt; added_by पूर्णांक (4) नहीं NULL दें संदर्भ super_admins (आईडी), - & gt; password_digest varchar ( 255) डिफ़ॉल्ट शून्य, - & gt; remember_token तारीख डिफ़ॉल्ट शून्य, - & gt; प्राथमिक कुंजी (आईडी), - & gt; बाधा विदेशी कुँजी (added_by) दें संदर्भ super_admins (आईडी), fk_guests - & gt; fk_guests1 विदेशी कुँजी (added_by) दें संदर्भ व्यवस्थापक बाधा (आईडी) - & gt;);
इसे पॉलीमॉर्फिक रिलेशनशिप (एसोसिएशन) कहा जाता है। और आपके पास एक कॉलम नहीं हो सकता ( जोड़ दिया गया है आपके मामले में) जो एक साथ दो मूल तालिकाओं का संदर्भ देता है लेकिन आप विदेशी कुंजी बाधाओं का उपयोग करने के लिए क्या कर सकते हैं, दो नल योग्य कॉलम जोड़ा गया_व्यक्ति / एडमिन और जोड़ा गया_बि_ददिन है, जिनमें से केवल एक रिकॉर्ड मूल्य प्रति होगा। <पूर्व वर्ग = "lang-एसक्यूएल prettyprint-ओवरराइड"> <कोड> टेबल मेहमानों (आईडी INT (11 बनाएँ) नहीं NULL AUTO_INCREMENT, first_name VARCHAR (55) डिफ़ॉल्ट शून्य, last_name VARCHAR (55) डिफ़ॉल्ट शून्य, ईमेल VARCHAR (100 ) डिफ़ॉल्ट नल, भूमिका_प्रकार INT (4) DEFAULT 4, प्रारंभ_दिनांक DATE, समाप्ति तिथि, दिनांक, कारण बूँद, जोड़ा गया_व्यक्ति_अडमैन INT (4) नल, जोड़ा गया_बाद्दा INT (4) शून्य, password_digest VARCHAR (255) डिफॉल्ट नल, स्मरणोत्सव तिथि, DEFAULT NULL, PRIMARY KEY (आईडी), बाधा विदेशी कुँजी (added_by_super_admin) दें संदर्भ super_admins (आईडी), बाधा fk_guests1 विदेशी कुँजी (added_by_admin) दें संदर्भ व्यवस्थापक (आईडी)) fk_guests; फिर आप पूछ सकते हैं में
SELECT ... कोयलास (एस.आई.डी., ए.आईड) जोड़ा गया है, कॉल्स (एस.नाम, ए .name) added_by_name, ... मेहमानों से G बाईं तरफ g.added_by_super_admin = s.id शामिल हों super_admins रों बाईं तरफ g.added_by_admin = a.id व्यवस्थापक में शामिल हों
Comments
Post a Comment