0

如果我有一对多的关系,比如 1 Vehicle 有 1 到 4 个轮子,如果有人试图打电话

graphClient.Create(wheel, new VehicleHasWheel(vehicle.Reference));

我们可以期望 graphClient 抛出一个异常,所以我们的汽车上没有 5 个轮子吗?

我们可以将关系 CarHasWheel 的最大值定义为 4。

现在,如果我必须检查约束,我需要手动查询数据库以获取现有轮子,然后决定是否应该创建另一个轮子。

4

1 回答 1

2

Neo4j 没有在框中提供这些类型的约束,因为它没有办法指定这样的模式。

您可以通过 Cypher 查询进行突变来实现类似的解决方案:

START ...
WHERE ...
CREATE ...

这将您的两个查询(决定,然后变异)集成为一个。

要知道是否创建了某些内容,请将其返回:

START ...
WHERE ...
CREATE ...
RETURN ...
于 2013-04-18T15:10:30.783 回答