2012-11-20 5 views
8

Jestem ciekawy konwencji nazewnictwa w neo4j.Jakie są konwencje nazewnictwa neo4j?

Zauważyłem w ich przykładach, że nazwy relacji są pisane wielką literą, np.

left-[r:KNOWS]->right 

Czy to konwencja? Czy w nazwach relacji jest wrażliwy na wielkość liter neo4j? Czy istnieją inne konwencje nazewnictwa dotyczące nazw indeksów i nazw właściwości?

Odpowiedz

6

To jest konwencja. Osobiście używam typów relacji małymi literami i tak, rozróżniana jest wielkość liter. Z podkreśleniami.

Zwykle ludzie używają również podkreśleń w nazwach indeksów, zazwyczaj są to małe litery i małe i małe litery.

Pamiętaj też: jeśli nie określisz kierunku podczas tworzenia, pozostanie domyślna < - w prawo. Nie jest to dla mnie intuicyjne, ale teraz zawsze określam kierunek.

Dla właściwości, myślę, że większość ludzi używa JSON stylu konwencje: http://google-styleguide.googlecode.com/svn/trunk/jsoncstyleguide.xml#Key_Names_in_JSON_Maps

Ja również widziałem podkreślenia dla właściwości, więc myślę, że to idzie w obie strony. Po prostu bądź konsekwentny!

+0

Jeśli chcesz przestrzenie, można. Musisz jednak zawrzeć typ relacji w backtickach. Składnia jest często używana w MySQL dla nazw obiektów ze spacjami. – ADTC

0

Może być łatwiej doprowadzić wszystko na wielkie litery lub małe litery, używając DOLNY() i upper() funkcje ciągów

1- Załóżmy Mam węzeł z nazwą property = „name "małymi literami, aby znaleźć to, czego potrzebujesz, aby dopasować againt dokładnie ciąg

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. 

inaczej nie znajdziesz go:

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


Query took 4 ms and returned no rows. 

Ale możemy dopasować go za pomocą funkcji ciągów niższy():

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- Z własności węzła wszedł z dowolnego ciąg znaków Przykład: "nazwa", aby dopasować przeciwko:

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

id(n) 
8 

Query took 5 ms and returned 1 rows. 
2

Tak, konwencja nazw relacji ma mieć ich ALL_UPPERCASE. Wszystkie nazwy w Neo4j uwzględniają wielkość liter (etykiety, relacje, właściwości, ...)

Należy pamiętać, że jest to konwencja, a nie wymóg. Najważniejszą częścią każdego projektu jest spójność. Użyj stylu kodowania i trzymaj się go przez cały czas!

Neo4j konwencji nazewnictwa:

  • Etykiety: UpperCamelCase (a.k.a.PascalCase)
  • Relacje: CAPITALIZED_WITH_UNDERSCORE
  • Property nazwy klawiszy: lowerCamelCase lub snake_case

Cypher przykłady:

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

Alternatywnie:

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

Referencje: