यह मेरा डीबी संरचना है
यह वह स्क्रिप्ट है जो मैं तालिकाओं को बनाने में करता था <पूर्व> मेरे पास निम्न डेटा दर्ज किया गया है उपयोगकर्ता समूह User_det खाते मौजूदा तालिका संरचना डीबी अखंडता का उल्लंघन करने वाले डेटा को सम्मिलित करने की अनुमति देता है। प्रविष्टि लेजरड 3 अमान्य है ---------- ------------------------ क्योंकि एएनएनएन ए 1 समूह समूह 1 के अंतर्गत आता है जिसके लिए उपयोगकर्ता 2 का हिस्सा नहीं है। प्रवेश ledgerid 4 क्योंकि acname AC2 ग्रुप 2 के अंतर्गत आता है जो User 1 का हिस्सा नहीं है करने के लिए। मैं रोका जा सकता है इस तरह के डेटा डालने? अभी आवेदन में मैं बीएल परत में PHP के माध्यम से यह चेक कर रहा हूं। क्या मैं इसे डीबी स्तर पर लागू कर सकता हूं क्योंकि मैं पीएपी फ्रंट एंड का उपयोग किए बिना भी कुछ आयात करता हूं। इस संबंध में संबंधों को पहचानना का उपयोग करें: ध्यान दें कि उपयोगकर्ता समूह पीके इस" हीरे "के ऊपर से माइग्रेट करता है, दोनों" पक्ष "के नीचे और" नीचे "पर विलीन हो जाता है। चूंकि नीचे की पंक्ति में केवल एक ही क्षेत्र है, जो शीर्ष पर पहचानता है, यह शीर्ष पर कई पंक्तियों से संबंधित नहीं हो सकता है। यदि आप उन्हें अन्य उद्देश्यों के लिए आवश्यक हैं और / या वैकल्पिक ऊपर कुंजी (यानी अद्वितीय की कमी) ... Btw, उपयोग और अधिक लगातार नामकरण - मैं हमेशा एकवचन का उपयोग कर और बिना काट-छांट तालिका नाम के साथ पीक फ़ील्डस लगाकर की सलाह देते हैं ... for_stkoverflow का उपयोग करें; तालिका उपयोगकर्ता समूह बनाएं (ग्रुपिड मेडिम्यूमन्ट नल एयूटीओएनसीसीसीमेंट, ग्रुपनाम VARCHAR (100), प्राइमरी की (`ग्रुप ')); CREATE TABLE User_det (Usrid MEDIUMINT नहीं NULL AUTO_INCREMENT, usrname VARCHAR (255), ग्रुप MEDIUMINT, प्राथमिक कुंजी ( `Usrid`), विदेश कुंजी (ग्रुप) संदर्भ usergroup (ग्रुप)); CREATE TABLE खाते (एसिड MEDIUMINT नहीं NULL AUTO_INCREMENT, ग्रुप MEDIUMINT, acname VARCHAR (255), प्राथमिक कुंजी ( `acid`), विदेश कुंजी (ग्रुप) संदर्भ usergroup (ग्रुप)); बनाने तालिका खाता बही (ledgerid MEDIUMINT नहीं NULL AUTO_INCREMENT, ledgername VARCHAR (255), एसिड mediumint, Usrid mediumint, प्राथमिक कुंजी (ledgerid), विदेश कुंजी (एसिड) का संदर्भ खाते (एसिड), विदेशी कुंजी (Usrid) का संदर्भ User_det (Usrid)) ;
---------- - समूहड समूहनाम --------------- ----- - 1 समूह 1 - 2 समूह 2
-------- - यूरीड यूजरनाम समूह ----- ------------------ - 1 उपयोगकर्ता 1 1 - 2 उपयोगकर्ता 2 2
- ------- एसिड ग्रुपड एएनवीएन --------------------- 1 1 एसी 1 - 2 2 एसी 2 <पी> लेजर
-------- -लेग्जीड लीडडगेमेन एसिड युसिड -------------------------- ------ - 1 ledger1 1 1 - 2 ledger2 2 2 - 3 ledger3 1 2 - 4 ledger4 2 1 का चयन करें t1.ledgerid, t1.ledgername, t2.acname, t1 अंदरूनी के रूप में लेजर से t3.usrname शामिल हों खातों के रूप में टी 2 ऑन टी 1। एसिड = टी 2. एसिड इनर इन यूज़र यूट यूट यूज़र टी 3 ऑन टी 1 यूसीड = टी 3 यूसाइट;
अवैध
No comments:
Post a Comment