I have the following problem that I need to solve for efficient querying, and flexible properties expansion:
nodes:
node_id1
node_id2
node_id3
node_id4
node_id5
groups:
node_id1;node_id2;node_id3
node_id4;node_id5
node_id1 < node_id2 < node_id3 => node_id1;node_id2;node_id3 (unique group ID from smallest to largest)
properties:
node_id1: color:red
node_id2: color:blue
node_id3: color:blue
results in:
node_id1;node_id2;node_id3: color:red:1,blue:2 size:3 ... etc
relation type:
node_id -IS_IN -> group
operations needed for speed optimization:
get groups by group properties, ex: color restrictions, min/max size, etc
get all groups for given node_id
update group properties when contained node_id property gets modified (can this be implemented in a smart way without too many lines of code?)
what kind of database would you recommend? mysql, neo4j, arangodb, mongodb, others?
First of all those aren't databases they are relational database management systems (RDBMS). They are two very different things because a database is a database is a database, but RDBMS's are very different from each other. So any RDBMS will work for you because they are all fundamentally the same. Personally I prefer to use SQL Server, Oracle, or MySQL as my RDBMS but they are all good.