MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

कई माता-पिता के साथ कई आत्म-संदर्भित संबंध कैसे मॉडल करें?

पेड़ के माध्यम से पुनरावृत्ति करने के बजाय (वास्तव में एक निर्देशित ग्राफ की तरह) हर बार जब आपको किसी कौशल के लिए सभी निर्भरताओं को पुनर्प्राप्त करने की आवश्यकता होती है, तो आप किसी विशेष कौशल में नई निर्भरता जोड़ते समय निहित निर्भरताओं के माध्यम से पुन:प्रयास कर सकते हैं और इन्हें एक तालिका में सहेज सकते हैं जिसे कहा जाता है 'निर्भरता' जो एक कौशल को एक निर्भरता और इसके विपरीत में मैप करती है। उदाहरण के लिए (संबंधों को बेहतर ढंग से कहा जा सकता है):

class Skill
    has_many :dependers, class_name: 'Dependency', foreign_key: :dependee_id
    has_many :dependees, class_name: 'Dependency', foreign_key: :depender_id

    has_many :dependencies, through: :dependees
    has_many :depending, through: :dependers

    def add_dependency(skill)
        recurse_dependencies(skill)
    end

    def recurse_dependencies(skill)
        # perform this check to avoid circular and duplicate dependencies
        if !depender_ids.include?(skill.id) && !dependee_ids.include?(skill.id)
            dependee_ids << skill.id
        end

        skill.dependencies.each do |dependency|
            recurse_dependencies(dependency)
        end
    end
end

class Dependency
    belongs_to :dependee
    belongs_to :depender
end

तब आपको निम्न कार्य करने में सक्षम होना चाहिए:

@front_end_development.dependencies
@front_end_development.depending
@front_end_development.add_dependency(@html)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. कई मॉडलों में मेरे नेवला कनेक्शन को निर्यात और पुन:उपयोग करें

  2. मोंगोडीबी ऑब्जेक्ट आईडी का उपयोग क्यों करता है?

  3. कैसे इस नेस्टेड दस्तावेज़ संरचना (MongoDB) में एक प्रश्न बनाने के लिए?

  4. MongoDB डेटा को .ejs में node.js . के साथ पास करना

  5. लेखन त्रुटि:[{}] में '_id' खोजने के लिए 'इन' ऑपरेटर का उपयोग नहीं कर सकता