我正在构建一个大型图形数据库,该数据库具有关于每个节点的大量元数据(每个节点数千个属性).我目前正在经历确定哪个元数据应该是Neo4j中的节点的过程,该节点应该成为节点的属性,并且应该位于单独的数据库中.
我的想法是以三种方式使用元数据:
1 - 如果属性在许多节点之间共享,那么为了使该属性成为它自己的节点并为该属性创建边缘.
2 - 如果属性对于遍历图形很重要,但不是"高度"共享,则将其添加为节点属性.(如果需要,也可以在Neo4j中编入索引)
3 =如果元数据严格描述该节点,则将其存储在单独的NoSQL数据库中,并使Neo4J节点ID成为另一个数据库的外键.
虽然它似乎是使用图形数据库的最有效使用,但拥有不同的属性类型并且在使用它之前必须确定它是哪种类型的属性似乎很痛苦.(可能是一个属性查找键值存储)它也可能意味着当一个属性变得高度共享或需要有效遍历时,我需要一种简单的方法来将属性从3提升到2到1.
有没有人采取这种方法?有什么想法分享,或者要避免的事情?
neo4j ×1