The most suitable choice depends on what problem you are trying to solve.
If you have only a few tables, from many to many, a relational database can be great. In general, there is better OR-mapper support for relational databases, since they are much older and have a standardized interface and column column structure. They have also been improved over time, so they are stable and optimized for what they do.
A basic diagram is better if, for example, your problem is more likely with connections between entities, especially if you need connections with a higher distance, for example, "detecting loops (of indefinite length)", some "what friend-friends like". Such things become cumbersome when they are limited to SQL joins. A problem-specific language like cypher in the case of Neo4j makes this much more concise. On the other hand, there are maps between dbs and objects, but not for all frameworks and languages under the sun.
I recently implemented a prototype system using neo4j, and it was very useful to be able to talk about the structure and relationships of our data and to be able to model them one-on-one in the data warehouse. In addition, adding other connections between data points was simple, neo4j a repository without schemas. We ended up switching to mongodb due to performance recording issues, but I don't think we could complete the prototype with this at the same time.
Other NoSQL data stores, such as document, columns, key values, also cover certain functions. Polyglot's insistence is certainly something to look out for, so keep your choice based on a backend reasonably separate from your business logic so you can change your technology later if you learn something new.
Thomas fenzl
source share