2014-01-21 5 views
2

내 시스템에는 "id"열이있는 관계형 DB 테이블이 있으며 Neo4J에서 이와 동일한 데이터 중 일부를 나타냅니다.Neo4J에서 "id"속성을 사용하는 것이 좋은 습관입니까?

첫 번째 방법은 ID 열과 상관 관계가있는 Neo에서 "id"속성을 만드는 것입니다.

이것이 좋은 방법이 아닌 이유가 있습니까? Neo가 생성하는 노드 ID와 기술적으로 또는 개념적으로 충돌합니까?

답변

4

ID가 생성 될 노드를 고유하게 구별하기위한 용도로 사용되는 경우 해당 ID가있는 것이 좋습니다.

그래도 미래에 그래프가 커지고 다른 DB 테이블을 그래프로 모델링해야하고 새 DB 테이블의 일부 ID가 이전 DB 테이블과 충돌한다고 말하면 그 상황에서 노드의 고유성을 유지하는 데 문제가 발생할 것입니다.

neo4j가 생성하는 노드 ID는 노드가 삭제 된 경우 재사용하기 쉽기 때문에 사용하지 않는 것이 좋습니다.

DB 테이블을 그래프 데이터베이스로 모델링하고 나중에 그래프 데이터를 db 테이블과 연관시키려는 경우에는 UUID.randomUUID(). toString()을 사용하여 임의의 고유 한 UUID를 생성 할 수 있습니다. 노드의 ID에 대해 중복 UUID 확률이 매우 낮음).

+0

다른 테이블의 ID : 레이블이있는 neo4j 2를 사용하고 있으므로 테이블 당 다른 레이블을 사용하고 있습니다. –

+0

멋집니다. DB 테이블 ID와 비슷한 ID를 유지하면 레이블과 ID 조합이 항상 달라 지므로 아무런 문제가 발생하지 않습니다! –

관련 문제