Neo4j Ограничивающие значения, метки или свойства - PullRequest
0 голосов
/ 29 августа 2018

Я работаю в RDBMS и пытаюсь обернуть голову вокруг графиков свойств (в частности, neo4j). Самое главное, что меня раздражает, так это то, что я не могу ограничить такие вещи, как

  • Метки узла
    • Нечего останавливать :person, :Pperson или :PURSONNN
  • Отношения
    • Ничего, чтобы убедиться, что вы не добавляете ребра, приложения не знают, как их использовать. Например, может быть, есть отношение «CanViewAccount», но кто-то другой приходит и наивно конструирует ребро «CanView»
  • Ничто не ограничивает свойства узлов или ребер.
    • Я мог бы хотеть иметь "UserType", который может быть :Person, который должен быть только одним из нескольких предопределенных параметров.

Это материал RDBMS 101 (а-ля ограничения ссылочной целостности), но я не уверен, смогу ли я сделать что-то подобное в Neo4j.

1 Ответ

0 голосов
/ 29 августа 2018

Вы должны знать, что Neo4j меньше схемы, поэтому вы можете делать все, что вы перечислили.

С другой стороны, Neo4j имеет некоторые ограничения, такие как:

  • ограничение уникальности для свойства метки. Например, свойство email должно быть уникальным для узлов :Person
  • обязательное ограничение для свойства метки. Например, свойство email должно существовать на узлах :Person
  • обязательное ограничение для свойства для типа отношений. Например, свойство since должно существовать для отношения :KNOWS

А в версии EE вы можете создать первичный ключ (называемый node key) в одном или нескольких полях

...