如何防止与用户定义的属性发生名称冲突

时间:2015-11-16 21:02:24

标签: neo4j

我使用neo4j(但这可能也适用于其他数据库)。用户可以给出他自己的键/值对。但我还需要通过系统定义一些属性。如何防止名称冲突(在密钥上)?我可以为所有系统属性添加前缀,但它似乎有点奇怪。此外,我可以创建另一个节点并将所有系统属性放在那里,但这可能会导致一些困难的查询。什么是解决这个问题的好方法?

1 个答案:

答案 0 :(得分:3)

Neo4jis属性图。 基本上,那里没有魔力。您已经提到了所有可能的解决方案。

从我的角度来看,最佳解决方案是 - 为用户定义的属性添加前缀(例如SET n.user_data = ‘{“key”: “value”}’ )。这将使查询保持足够简单,并且不会影响任何性能问题。

此外,如果此属性仅用于READ,并且您永远不会对它们运行查询,那么您可以考虑在节点中存储带有用户定义数据的JSON:

Scanner