I got in an argument with someone that wants to add more links the the schema.
His argument is that it's faster if the entity is linked directly to the entity I want to search.
My argument is that it is better to have the most natural model possible, that mostly resemble reality. and that even if an entity is 4 link deeper, it will be fast since traversing node and their linked nodes is linear. Also, making the Cypher query will be closer to natural language and easier to build. + I don't want to maintain 'fake' link just for performance reason.
Am I wrong? Is adding link that are not natural a good way to link entity and have faster queries?
Example is for a virus on a computer
User -> [HasFile] -> File -> [Contains] -> Virus
His model that is challenging mine
User -> [Has] -> Virus (I don't agree with this one)
User -> [Is_Owner] -> File
File -> [Has] -> Virus
Some Use case that the graph needs to answer:
- know all the users that own a certain virus (virus has a Hashed unique value as Id)
- know all the virus of one user