Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
03-09-2020 07:03 PM
Hello, I am a noob and I am in a dire need of advice concerning Neo4j, if it fits my project or not. It's easier to ask those who are experienced than read a whole book just to learn that you wasted your time with the wrong technology.
See, I am building this db about robots (I am talking about a website) and a robot is a part made of parts (+itself, as it is a part/object itself). It introduces recursion. A robot is made of a body (among other parts) that is made of a leg that is made of a thigh, etc. Each part has a set of tags (blue, metal), specifications (length), etc and the leg inherits the tags/specs of the thigh, the body inherits the tags/specs of the leg which inherited from the thigh, etc. A robot can have options, like a laser beam or a chainsaw. Same, with inherited tags/specs. Now, a part (ex: body) can have options that may or may not be inherited by the higher part (ex: the robot, because it's specialized). It can also add new parts (a new kind of breast plate) or tags/specs (an exclusive color), to the body used by the robot.
Hierarchies, recursivness, inheritance, they are not something that I can handle with a RDBMS like Mysql without major headache. The problem is that I want a powerful search engine that will be able to find every piece that has such and such tag or spec (ex: red led eyes, articulate feet, height between x and y), make that kind of complex queries with an unknown level of depth without god awful performances because of recursion.
Is Neo4j the way to go (integrated with procedural PHP), knowing that it's a major investment for a specific problem (and I really don't have time to learn something just to learn it doesn't solve my problem, I would honestly be in trouble as I have not extensive time :/).
Thank you for reading me.
03-09-2020 08:32 PM
In brief yes, I would utilize Neo4j for your project. You're essentially building a knowledge graph of parts that make up a robot. You'll see better performance as the level of recursion deepens and it'll be easier to identify shared components that robots have in common.
03-10-2020 03:25 PM
That's what I thought. Thank you for your answer.
Now, to make this thread useful, I have read the Getting Started Guide and some other stuff, and I have a question to kickstart me if you don't mind?
I said a part could have options that may or may not be inherited by a parent part that would select it (a body offers three breasts plates but one parent robot only uses one from the set). What is the best practice?
Also, is there some great resources with concrete examples as how to handle common web use cases such as tag cloud?
All the sessions of the conference are now available online