Я рассматриваю изучение графика баз данных (как Neo4j), но мне было интересно, если такие объекты имеются в базах данных графиков, например, если я:.Может ли neo4j объединить идентичные узлы объектов?
Step 1: create: A --> B --> C
Step 2: create: D --> B --> E
Step 3: create: F --> G --> E
Это должно автоматически результат в графе сохраняется что-то вроде:
A ---> B ----> C
/|\ \
D -----| \--> E
/|\
F ---> G --------|
Здесь общие узлы в и Е являются соединялись (без необходимости программно проверить наличие предшествующего существования этих узлов). В реальном мире, например, было бы 1000-таких Б и Е, которая будет осуществляться в реляционной БД следующим образом: (., Например, когда я вставляю соотношение D -> B)
FK = Foreign Key .. X Y Z are keys for three primary tables.
___________ ________ _____________ ________
X | FK(Y) Y | ... FK(Y) | FK(Z) Z | ..
---|------- --|----- ------|------ ---|----
A | FK(B) B | ... FK(B) | FK(C) C | ..
D | FK(B) G | .. FK(B) | FK(E) E | ..
F | FK(G) FK(G) | FK(E)
В РБР, Мне пришлось бы программно искать дублирующий объект B во 2-й таблице (или искать код сбоя при попытке вставить в него идентичный объект), а затем получить внешний ключ B в сочетании с D. Я надеюсь, что в DB, такие вещи заботятся о БД.
Большое спасибо. Посмотрите на эти функции, как только я начну обманывать его. Но по крайней мере теперь я знаю, что такие вещи возможны без слишком большого количества кодировок. –
Имейте в виду, что 2.0 вехи еще не готовы к производству, а некоторые особенности новых функций находятся в потоке (в следующей вехе могут произойти изменения). Если вы застряли с 1.9.2, то есть плагин, который сделал кто-то, что делает атомные upserts. Я еще не использовал его. https://github.com/trentonstrong/neo4j-atomic-create-update – LameCoder
Хорошая точка, @LameCoder. Я полагал, что, поскольку ОП «рассматривал» учебные графовые базы данных *, сосредоточение внимания на предстоящем (пока еще не готовом к выпуску) версии 2.0 было довольно низким. –