Hi all,
We have a Node Type "Foo" which may optionally be associated with another
Node Type "Bar".
"Bar" is logically owned by "Foo" but is effectively transient e.g. it is
deleted and recreated frequently.
3 potential solutions:
Solution A:
[acme:Foo] > ..usual suspects
- acme:bar (acme:Bar) COPY
Solution B:
[acme:Foo] > ..usual suspects
acme:bar (reference) COPY
< 'acme:Bar'
Solution C:
[acme:Foo] > ..usual suspects
- acme:barUUID (string) COPY
We are currently using Solution B rather than Solution A to ensure we do not
cause versioning of "Foo" each time "Bar" changes.
The issue is that basic delete is not permitted on any "Foo" if it has a
"Bar" using Solution B. Ideally we'd want the concept of cascade delete
where the "Bar" is deleted if the "Foo" is deleted but without having to use
Solution A.
If we use Solution C then we weaken the relationship to being UUID based
rather than an integral relationship. This is a workaround to address the
basic requirements for association and deletion, although we'll need to tidy
up unused Bar instances.
If Solution C is used then we'll need to use getNodeByUUID() rather than
following a reference property. Is there a performance drop in using
getNodeByUUID vs getProperty().getNode()?
Regards,
Shaun.