I don't really get why there are Director, Actor nodes when there is a Person node. The Person node with relationship directed is already indicating the director. So why still an extra Director node?
CALL db.schema.visualization()
I don't really get why there are Director, Actor nodes when there is a Person node. The Person node with relationship directed is already indicating the director. So why still an extra Director node?
CALL db.schema.visualization()
is a node with label Actor
causing issue/error?
Not if all Directors/Actors/Persons nodes were simply identified with a Person label then if for example you had
10 Directors
200 Actors
500 Persons
and now we have 710 nodes all with Person label then if you want to find only the Directors then you need to run a NodeByLabelScan on all 710 Person nodes and then check if they have a Directed relationship. Whereas if the 10 Person who are Directors have a label of Director then to find only the Directors then we perform a NodeByLabelScan and thus only look at the 10 nodes with label Director
I don't think there are separate nodes that are directors but not also persons, it's just an additional label on some of the Person nodes. The db.schema.visualization don't capture this I believe (we know it's not perfect, it also have known issues around giving back non-existing relationships sometimes). But yeah, like Dana says, the Actor/Director labels are there for faster and easier filtering if you're only interested in those persons and not all persons.
a director can be a person but a person is not necessarily a director and a director can be a non-person if that's how it's labeled, don't be distracted by what you think is a relationship unless that relationship is merged...that's how I understand it
Is the db schema (the actual one as opposed to the visualization) best if it is in normalized form?
Thanks for the insight :)