8

मैं 'लेखक' और 'किताब' टेबल है, एक has_many में शामिल हो गए: तालिका के माध्यम से 'author_book'रेल के पास है_मनी: के माध्यम से -> क्या मुझे प्राथमिक कुंजी कॉलम रखना चाहिए?

जहां तक ​​मेरा बता सकते हैं, वहाँ कोई उद्देश्य के लिए एक है: आईडी प्राथमिक कुंजी क्षेत्र 'author_book' मेज पर ... लेकिन इससे पहले कि मैं उस विचार को प्रतिबद्ध करता हूं, मैं बस पुष्टि करना चाहता था। तो, क्या है id_many पर 'id' कॉलम रखने के लिए कोई कारण है: तालिका के माध्यम से?

अग्रिम धन्यवाद ...

+0

आप वाकई इन संबंधों के लिए 2 अनुक्रमित जोड़ने करना चाहिए [: book_id,: author_id] यह सुनिश्चित करें कि आप प्रत्येक जाना करने की क्षमता है बनाता है तालिका स्कैन की आवश्यकता के बिना संबंध के माध्यम से रास्ता। उदाहरण में इन तालिकाओं के नाम से, आप डुप्लीकेट को रोकने के लिए इन्हें ': unique => true' भी जोड़ सकते हैं –

उत्तर

8

इसे रखने की आवश्यकता नहीं है। बाद में आपको अनूठे पहचानकर्ता को उन तरीकों से भुगतान करना पड़ेगा जो प्रारंभ में स्पष्ट नहीं हैं।
अन्य चुस्त विकास सिद्धांतों के विपरीत, डेटा गुणवत्ता वाले आइटम जैसे इस पते को सामने लेना बेहतर है। add_index TABLE_NAME, [: author_id,: book_id] add_index TABLE_NAME,

3

क्या तुमने कभी कुछ लेखक पुस्तक संबंध के लिए अद्वितीय है, तो आप id की आवश्यकता होगी एक AuthorBook मॉडल के माध्यम से इस तालिका में यह निर्धारित करने के लिए। यह इस मामले में संभावित परिदृश्य की तरह नहीं लगता है, और यदि आपको आवश्यकता हो तो आप इसे बाद में जोड़ सकते हैं।

3

यदि यह has_many through है जिसका अर्थ है कि author_book एक सक्रिय रिकॉर्ड मॉडल है, तो कृपया इसके लिए आईडी छोड़ दें। लेकिन अगर आप has_and_belongs_to_many कनेक्टिंग टेबल का उपयोग करेंगे, तो आईडी http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_and_belongs_to_many

संबंधित मुद्दे