मेरे पास एक ग्राफ डेटाबेस में मॉडलिंग के बारे में एक सामान्य सवाल है कि मैं अपने सिर को चारों ओर लपेटने के लिए प्रतीत नहीं कर सकता।ग्राफ डेटाबेस में रीयल-वर्ल्ड रिलेशनशिप मॉडल कैसे करें (जैसे Neo4j)?
आप इस प्रकार के रिश्ते को कैसे मॉडल करते हैं: "न्यूटन ने कैलकुस का आविष्कार किया"?
एक simple graph में, आप इसे इस तरह मॉडल सकता है:
Newton (node) -> invented (relationship) -> Calculus (node)
... ताकि आप एक गुच्छा का ग्राफ रिश्तों 'आविष्कार' के रूप में आप और अधिक लोगों को और आविष्कार जोड़ा होगा।
समस्या यह है, आप रिश्ते के लिए गुण का एक समूह जोड़ने के लिए की आवश्यकता होगी, शुरू:
- invention_date
- influential_concepts
- influential_people
- books_inventor_wrote
... और आप उन गुणों और अन्य नोड्स के बीच रिश्तों को बनाना शुरू करना चाहते हैं, जैसे:
- influential_people: व्यक्ति के लिए संबंध नोड
- books_inventor_wrote: रिश्ते नोड्स बुक करने के लिए
तो अब यह "वास्तविक जीवन के संबंधों" की तरह लगता है ('आविष्कार') वास्तव में एक नोड होना चाहिए ग्राफ, और ग्राफ इस तरह दिखना चाहिए:
Newton (node) -> (relationship) -> Invention of Calculus (node) -> (relationship) -> Calculus (node)
और जटिल चीजों को और अधिक, अन्य लोगों को भी पथरी के आविष्कार में भाग लिया जाता है, इसलिए ग्राफ अब हो जाता है कुछ की तरह:
Newton (node) ->
(relationship) ->
Newton's Calculus Invention (node) ->
(relationship) ->
Invention of Calculus (node) ->
(relationship) ->
Calculus (node)
Leibniz (node) ->
(relationship) ->
Leibniz's Calculus Invention (node) ->
(relationship) ->
Invention of Calculus (node) ->
(relationship) ->
Calculus (node)
तो मैं सवाल पूछ क्योंकि यह की तरह लगता है आप वास्तविक ग्राफ डेटाबेस पर गुण सेट नहीं करना चाहता "रिश्ते" कुछ पर वस्तुओं, क्योंकि आप चाहते हो सकता है बिंदु ग्राफ में नोड्स के रूप में उनका इलाज करें।
क्या यह सही है?
मैं Freebase Metaweb Architecture का अध्ययन कर रहा हूं, और वे सब कुछ नोड के रूप में व्यवहार कर रहे हैं। उदाहरण के लिए, फ्रीबेस में Mediator/CVT का विचार है, जहां आप "प्रदर्शन" नोड बना सकते हैं जो "अभिनेता" नोड को "फिल्म" नोड से लिंक करता है, जैसे: http://www.freebase.com/edit/topic/en/the_last_samurai। हालांकि यह बिल्कुल सही नहीं है कि यह एक ही मुद्दा है।
कुछ वास्तविक सिद्धांत क्या हैं जो आप यह समझने के लिए करते हैं कि क्या "असली दुनिया संबंध" वास्तव में ग्राफ संबंध के बजाय ग्राफ नोड होना चाहिए?
यदि इस विषय पर कोई अच्छी किताबें हैं तो मुझे जानना अच्छा लगेगा। धन्यवाद!
उत्कृष्ट उत्तर! यह वास्तव में मेरे लिए चीजों को साफ़ करता है, धन्यवाद। –