Determine how to model one-to-many relationships
Opened this issue · 1 comments
We have a few cases where we want to model a one-to-many relationship.
- EntryPoint#potentialAction
- DefinedTerm#inDefinedTermSet
Using the neo4j-graphql-js library we haven't found a good way to do this. Currently we use @relation
to define a many-to-many relationship.
@ChristiaanScheermeijer suggested that we could try and use Neo4j constraints. We need to see if this is a suitable solution.
We found that you can make a relation for a single item:
target: ThingInterface! @relation(name: "ANNOTATION_TARGET", direction: OUT)
However, in the case where a field is required and a relation, the Create mutation allows you to create an object without the field (because you need to use Add/Merge to create the relation), but if you try and do a Query that includes this field when it's not set an error will be raised.
This can probably be closed if we're happy with the current solution.