I also thought a little about this problem. In my case, I had to submit a state:
- TO BEGIN
- IN_PROGRESS
- SUBMITTED
- COMPLETED
In general, the Node + Relationship approach looks more attractive, since only binding to one link should be supported every time, and not a string of properties, and you do not need to scan an additional additional index that should be supported on the property (memory and performance will intuitively favor this approach).
Another advantage is that it easily supports the ability to bind Node to multiple "special nodes." If you anticipate a situation where this is possible in your model, this is better than using an array of properties (and searching using "in").
In practice, I found that the problem then became how you access these special nodes every time. Either you maintain a link to some constants, where you have the Node identifier of these special nodes, where you can jump directly into them in your START statement (this is what we do), or you need to search against the special Node property each times (name, possibly), and then cross his relationship. This does not apply to the most beautiful cypher requests.
mwielbut
source share