2011-04-10 10 views
11

ठीक है, तो सबसे पहले मुझे रूबी, रेल, मोंगो या यहां तक ​​कि ActiveRecord की बात आती है, इसलिए मैं माफी माँगता हूं कि अगर ये प्रश्न काफी बुनियादी हैं तो मैं क्षमा चाहता हूं। सबसे पहले, मेरे पास "इवेंट" मॉडल है और मैंने अपने "टिप्पणी" मॉडल में कई रिश्तों को जोड़ा है। अब यह मोंगो (या कोई दस्तावेज़ डीबी) की मेरी (मूलभूत) समझ है कि विदेशी कुंजी लुकअप (या जो कुछ भी उन्हें मोंगो में कहा जाता है) की सलाह नहीं दी जाती है, बल्कि एक दस्तावेज़ में जितना संभव हो सके स्टोर करने का विकल्प चुनते हैं। इसे ध्यान में रखते मैं टिप्पणी JSON/प्रत्येक दस्तावेज़ अर्थातमोंगो मैपर्स को समझना कई रिश्तों

event: 

{ 
Title: "some event" 
Comments : [ 
    { user_id: [object id], comment: "comment"}, 
    { user_id: [object id], comment: "other comment"} 
] 
} 

इसके बजाय मैं देख रहा हूँ कि एक टिप्पणी संग्रह घटना संग्रह के रूप में रूप में अच्छी तरह से बनाया गया है में एम्बेडेड BSON के साथ एक एकल घटनाक्रम संग्रह की उम्मीद करेंगे। क्या यह इस संबंध को मैप करने का सही तरीका होगा, यदि हां, तो मैं टिप्पणी संग्रह कैसे बना सकता हूं और इसके बजाय सीधे घटना में एम्बेड की गई जानकारी है? मेरा अनुमान है कि मुझे अपनी टिप्पणी मैपिंग को एक _id संपत्ति नहीं है और इस प्रकार अपने संग्रह से संबंधित नहीं है।


संपादित करें: मुझे पता चला है कि क्या मैं यहाँ मेरा पहला सवाल में लिए देख रहा था MongoMapper :: दस्तावेज़ सहित MongoMapper :: EmbeddedDocument के बजाय का उपयोग करने के


दूसरे, मैं चाहता हूँ था उपयोगकर्ता खुद को "उपस्थित" या "रुचि" के रूप में फ़्लैग करने में सक्षम होने के लिए सक्षम होते हैं, जिसे मैंने माना है कि ईवेंट पर संदर्भ उपयोगकर्ता_आईडी की सरणी के रूप में मॉडलिंग किया जाएगा। इसलिए मैंने शुरू में सोचा कि इसे दो "कई" संबंधों के रूप में मैप किया जाएगा, लेकिन जहां तक ​​मैं निरंतर नाम बता सकता हूं, मैं कई विधिओं में गुजर रहा हूं, गेटटर/सेटर्स बनाने के लिए उपयोग किया जाता है, जो मेरे लिए काम नहीं करेगा अगर मेरे पास एक ही प्रकार के लिए दो रिश्ते थे।

दूसरे शब्दों में, अगर मैं इस मानचित्रण है:

class Event 
    many :users 
end 

तो यह मेरी समझ है कि मैं तो getters और setters उन संपत्ति के लिए उत्पन्न होगा है। इसलिए मैं कुछ ऐसा कर सकते हैं:

event.users << someAttendingUser

यह सब अच्छा है, और समय में इस बिंदु पर मैं चाहेगा उपयोगकर्ता के संदर्भ में संग्रहीत करने के लिए और नहीं पूरे उपयोगकर्ता BSON (साथ विपरीत से ऊपर टिप्पणियां उदाहरण)। अब समस्या यह है कि जब मैं उपयोगकर्ता संग्रह में दो मैपिंग करता हूं, तो मैं यह कैसे कर सकता हूं, क्योंकि "उपस्थित" और "रुचि रखने वाले" दोनों उपयोगकर्ताओं की मेरी आवश्यकता के साथ?

तो यह पर्यटन संक्षेप में प्रस्तुत करने:

  • कभी कभी मैं orinal दस्तावेज़ में BSON के रूप में सीधे कई रिश्तों को संग्रहीत करना चाहते हैं, न कि किसी दस्तावेज़ के लिए एक संदर्भ एक और संग्रह के रूप में। मैं यह कैसे करु?

  • कभी-कभी मैं एक दस्तावेज़ पर उसी प्रकार के कई रिश्तों को स्टोर करना चाहता हूं और मैं चाहता हूं कि वे किसी अन्य संग्रह में किसी दस्तावेज़ के संदर्भ हों। मैं यह कैसे करु?

आशा है कि यह समझ में आया, और अगर मैं यहां स्पष्ट पूछता हूं तो मैं क्षमा चाहता हूं।


संपादित करें 2:

ठीक है, अच्छी तरह से मैं वास्तव में किया था इस सवाल पूछने से पहले खोज, लेकिन ऐसा लगता है कि अब मैं अपने समस्याओं के दोनों का जवाब मिल गया है तो मैं सवाल अपने आप बंद हो जाएगा।

दूसरे भाग यानी

class Event 
    many :attendees, :class_name => "User" 
    many :interested, :class_name => "User" 
end 

+8

ओवेन मानचित्रण के लिए एक वर्ग के नाम विकल्प निर्दिष्ट करने के लिए मुझे आवश्यकता --- आप एक जवाब का जवाब के लिए कदम और यह अपने आप को स्वीकार –

+0

कृपया कर के रूप में @JesseWolgamott ऐसा कहा गया है चाहिए यह मेरी फ़ीड से गायब हो सकता है। दूसरों की मदद करने की कोशिश कर रहा है और आपका प्रश्न पॉप-अप रहता है। धन्यवाद! – WattsInABox

उत्तर

2

ठीक मानचित्रण के लिए एक वर्ग के नाम विकल्प निर्दिष्ट करने के लिए मुझे आवश्यक है, अच्छी तरह से मैं वास्तव में इस सवाल पूछने से पहले की खोज की, लेकिन ऐसा लगता है कि अब मैं पाया है मेरी दोनों समस्याओं का उत्तर दें ताकि मैं खुद प्रश्न को बंद कर दूंगा।

दूसरे भाग यानी

class Event 
    many :attendees, :class_name => "User" 
    many :interested, :class_name => "User" 
end 
संबंधित मुद्दे