我正在尝试决定是否应该将类别实现为节点或标签。
尤其是获取属于某个类别的节点计数的查询并不那么容易。
节点必须能够属于更多类别!
类别作为标签,变体 1
在某处保留类别列表,然后:
MATCH a:cat1, b:cat2, c:cat3, ...
有很多类别,我会得到很多列..所以这不是很好。还有很多对查询的预处理。
甚至不确定我是否可以轻松地从中获得计数。
作为标签的类别,变体 2
MATCH n:category <-- the category label is used to limit the amount of nodes
RETURN DISTINCT labels(n), count(*) as count
将返回如下内容:
["category","the actual category label"], 2
看起来很完美,但是当一个节点有多个类别时这将不起作用
["category","cat1","cat2"], 2 <-- two nodes found with category "cat1" and "cat2"
["category","cat1"], 4 <-- four nodes found with category "cat1"
现在我不知道如何获得每个类别的计数......
也许有extract(..labels()..)
或filter(..labels()..)
可以做到这一点,但我不知道如何。
作为节点的类别是的,这很有效……这很简单。但是标签不应该是对节点进行分类的东西吗?加上我将要创建的所有额外关系..
也许我应该将它作为标签和节点来实现?
然后使用标签,我可以快速获得具有类别的每个节点。通过一个节点,我可以获得类别计数。
我仍在寻找关于这个问题的一个好的观点,所以我还不能给出一个具体的实现问题。