When you are trying to solve a problem that meets any of the following descriptions, you should probably consider using a graph database such as Neo4j.