In Neo4j all: properties, labels and relationships are dynamic. So you can add your dynamic user types as dynamic properties on nodes and relationships. And your queries can be dynamic too.
As long as your users don't query the db directly you can have several independent graphs in the db e.g. separated by adding a label or property per tennant. We're gonna add better support for that in upcoming versions. If you can live with that, Neo4j sounds like a good tool for your use-case. Michael On Fri, Apr 14, 2017 at 8:15 PM, Rj Ewing <[email protected]> wrote: > I'm evaluating databases to use for my application, and was wondering if > neo4j might be appropriate. > > We are currently using a triple store db, but are looking to move away due > to performance issues. > > Our business requirements demand a dynamic schema. Our application > revolves around user defined entities. Each entity is a tabular dataset > with user defined columns and data types. Entities can be related to other > entities, most often via parent-child relationships. > > It seems that where graph databases excel is in regards to relationships. > While we do require relationship support, the relationships will not likely > go more then 2 levels (Parent -> child -> child), and the vast majority of > the use will be at the root node level. > > We need to be able to perform ad-hoc queries on individual entities > properties, with the occasional join. These need to execute quickly as it > is an integral part of our user ex. > > Another requirement is that we need to support multiple projects on a > single neo4j instance, and keep the data separate. I think that neo4j only > supports a single graph? I think this could be accomplished by prefixing > the entity name with the project. > > The reason I look to neo4j over a RDMS is the flexible schema. Each entity > consists of a set of user defined attributes. Some will be required, and > others will be optional. Ideally we could store only the attributes > provided by the user, and not have any nulls in the db. > > If anyone has any thoughts about using neo4j for our use case, that'd be > great. > > -- > You received this message because you are subscribed to the Google Groups > "Neo4j" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
