2012-11-20 14 views
8

मैं neo4j में सम्मेलनों का नामकरण करने के बारे में उत्सुक हूं।neo4j नामकरण सम्मेलन क्या हैं?

मैंने अपने उदाहरणों में देखा कि रिश्ते के नाम जहां पूंजीकृत, उदा।

left-[r:KNOWS]->right 

क्या यह सम्मेलन है? Neo4j केस रिलेशनशिप नामों में संवेदनशील है? क्या इंडेक्स नामों और संपत्ति के नामों के आसपास अन्य नामकरण सम्मेलन हैं?

उत्तर

6

यह सम्मेलन है। मैं व्यक्तिगत रूप से लोअर केस रिलेशनशिप प्रकारों का उपयोग करता हूं, और हां, यह केस-संवेदी है। अंडरस्कोर के साथ।

आमतौर पर, लोग इंडेक्स नामों के लिए अंडरस्कोर का भी उपयोग करते हैं, और वे आमतौर पर कम केस होते हैं, और केस-सेंसिटिव भी होते हैं।

इसके अलावा, याद रखने के लिए कुछ: यदि आप बनाते समय दिशा निर्दिष्ट नहीं करते हैं, तो डिफ़ॉल्ट < - दाएं छोड़ दिया गया है। मेरे लिए सहज नहीं है, लेकिन अब मैं हमेशा दिशा निर्दिष्ट करता हूं।

संपत्तियों के लिए, मुझे लगता है कि ज्यादातर लोगों को JSON शैली सम्मेलनों का उपयोग करें: संपत्तियों के लिए http://google-styleguide.googlecode.com/svn/trunk/jsoncstyleguide.xml#Key_Names_in_JSON_Maps

मैं भी देखा है अंडरस्कोर, तो मैं यह किसी भी तरह से चला जाता है लगता है। बस सुसंगत रहो!

+0

आप रिक्त स्थान चाहते हैं, आप कर सकते हैं। हालांकि आपको रिश्ते के प्रकार को बैकटिक्स में संलग्न करना होगा। वाक्यविन्यास अक्सर स्पेस के साथ ऑब्जेक्ट नामों के लिए MySQL में उपयोग किया जाता है। – ADTC

0

आसान कुछ हो सकता अपर केस या लोअर केस कम() और ऊपरी() स्ट्रिंग कार्यों

उपयोग करने के लिए सब कुछ लाने के लिए

1- का मैं एक संपत्ति name = 'नाम के साथ एक नोड है लगता है चलो 'कम मामले में, यह पता लगाने के लिए आप सटीक स्ट्रिंग againt मिलान करने की आवश्यकता

Query: 
CYPHER 2.0 
START n=node(*) 
WHERE n.name= "name" 
RETURN id(n) 

id(n) 
5 

Query took 3 ms and returned 1 rows. 

अन्यथा आप इसे प्राप्त नहीं कर सकेंगे:

Query: 
CYPHER 2.0 
START n=node(*) 
WHERE n.name= "Name" 
RETURN id(n) 


Query took 4 ms and returned no rows. 

लेकिन, हम यह स्ट्रिंग समारोह कम() का उपयोग कर से मेल कर सकते हैं:

CYPHER 2.0 
START n=node(*) 
WHERE n.name= LOWER("Name") 
RETURN id(n) 

id(n) 
5 

Query took 4 ms and returned 1 rows. 

2- नोड संपत्ति के साथ साथ मनमाना स्ट्रिंग मामले पूर्व में प्रवेश किया: के खिलाफ मैच के लिए "नाम",:

START n=node(*) 
WHERE LOWER(n.name)= "name" 
RETURN id(n) 

id(n) 
8 

Query took 5 ms and returned 1 rows. 
2

हां, संबंधों के नामों के लिए सम्मेलन उन्हें ALL_UPPERCASE होना है। नियो 4j में सभी नाम केस-संवेदी (लेबल, रिश्ते, गुण, ...)

ध्यान रखें कि यह एक सम्मेलन है, आवश्यकता नहीं है। किसी भी परियोजना में सबसे महत्वपूर्ण हिस्सा स्थिरता है। एक कोडिंग शैली का उपयोग करें और पूरे समय तक चिपके रहें!

Neo4j नामकरण सम्मेलन:

  • लेबल: UpperCamelCase (यानीPascalCase)
  • रिश्ते: CAPITALIZED_WITH_UNDERSCORE
  • संपत्ति कुंजी नाम: lowerCamelCase या snake_case

साइफर उदाहरण:

CREATE (:Person {name:"Anne"})-[:MANAGES {start_date:20121112}]->(:WorkGroup {name:"Dev"}); 

वैकल्पिक रूप से:

CREATE (:Person {name:"Anne"})-[:MANAGES {startDate:20121112}]->(:WorkGroup {name:"Dev"}); 

संदर्भ:

+०१२३५१६४१०६
संबंधित मुद्दे