मैं अनुमान लगा रहा हूं, क्योंकि विदेशी कुंजी अपनी खुद की तालिकाओं में प्राथमिक कुंजी हैं, इसलिए वे अद्वितीय होंगे।क्या डेटाबेस तालिका में दो कॉलम हैं जो विदेशी कुंजी हैं, एक तीसरा कॉलम है जो प्राथमिक कुंजी है?
और जानकारी
मैं MySQL का उपयोग कर रहा है और निम्नलिखित तीन टेबल InnoDB
इंजन का उपयोग कर रहे हैं।
======================= =======================
| galleries | | images |
|---------------------| |---------------------|
| PK | gallery_id | | PK | image_id |
| | name | | | title |
| | description | | | description |
| | max_images | | | filename |
| | enabled | | | enabled |
======================= =======================
========================
| galleries_images |
|----------------------|
| FK | gallery_id |
| FK | image_id | <----- Should I add a PK to this table?
========================
उपसंहार
उत्कृष्ट जवाब के लिए धन्यवाद। मैंने समग्र कुंजी के बारे में सीखा और, मेरे विशिष्ट मामले पर विचार करने के बाद, मैंने कॉलम को galleries_images
तालिका प्राथमिक प्राथमिक कुंजी में बनाने का निर्णय लिया। इस तरह, छवियों को केवल एक गैलरी से जोड़ा जा सकता है, जो मैं चाहता हूं।
मैं order_num
कॉलम galleries_images
में भी लागू करने जा रहा हूं जिसे मैं बनाए रखने के लिए PHP तर्क का उपयोग करूंगा। इस प्रकार उपयोगकर्ता छवियों को प्रत्येक गैलरी में एक विशिष्ट क्रम में रख सकता है।
============================
| galleries_images |
|--------------------------|
| PK, FK | image_id |
| FK | gallery_id |
| | order_num |
============================
धन्यवाद फिर से: मैं इस के साथ समाप्त हो गया!
उपसंहार द्वितीय
आप में से जो लोग ने बताया कि मैं भी इस तालिका जरूरत नहीं थी के लिए धन्यवाद। मैंने शुरू करने के लिए सबसे पूर्ण जानकारी प्रदान नहीं की है। मैंने galleries_images
तालिका को पूरी तरह से छोड़ दिया और तालिका में विदेशी कुंजी के रूप में gallery_id
को जोड़ा। वैसे भी, मैंने अभी भी सोचा था कि मैंने सोचा था कि मैं मदद के लिए आभारी हूं और आभारी हूं।
+1। यहां तक कि मैं भी सोच रहा हूं, लेकिन हमें और जानकारी चाहिए। आम तौर पर कोई भी डीबी तालिका की प्राथमिक कुंजी पर एक अद्वितीय इंडेक्स बनाएगा। यदि आपकी तालिका में केवल दो विदेशी कुंजी हैं और कोई प्राथमिक कुंजी नहीं है, तो मुझे डर है कि इंडेक्स नहीं बनाया जाएगा (पुष्टि नहीं की गई है, अटकलें)। यह तब निर्भर करता है कि तालिका के लिए किस प्रकार और कैसे उपयोग किया जाता है। – Guru
सिर्फ इसलिए कि विदेशी कुंजी मूल सारणी में प्राथमिक कुंजी के लिए मानचित्र हैं, इसका मतलब यह नहीं है कि विदेशी कुंजी का संयोजन अद्वितीय होना चाहिए। – David
प्रतीक्षा करें! मैपिंग टेबल की एकमात्र आवश्यकता यह है कि यदि मॉडल के लिए गैलरी और छवि के बीच कई रिश्तों की आवश्यकता है। यदि आप पीके छवि_आईडी बनाते हैं, तो यह अब बहुत से नहीं है ... बस गैलरी_आईडी को आप में टेबल टेबल डालें और इसके साथ किया जाए। मुझे नहीं पता कि InnoDB क्या है, लेकिन अगर यह दो चीजों में से एक की तुलना में कचरा बनाता है, तो यह कई और कई लोगों के बीच अंतर नहीं कर सकता है या आप नहीं कर सकते हैं। भौतिक डिजाइन से डेटाबेस शुरू करने में यह समस्या है। आप इस बात पर विचार करने के लिए परेशान नहीं हैं कि आपके रिश्ते क्या हैं। –