In my scenario there are 3 main kinds of entities in the datastore, kind Users, Objects and Keywords. The problem is modelling the relationships among objects and keywords classifying them.
Users can create as many objects they want and the User-Object relationship can easily implemented with ascestor links.
I modeled inter-objects and inter-users relationships by defining an Entity for any relationship. This beacause this way I can have all the fan-in and fan-out I want and the relationship search scale with the result set, so it its time-efficient too.
now I need to classify objects for keywords. Each object can be associated to a limited number of keys while each key can not have fan out limits.
How is the most efficient way to implement them? (time-efficiency (complexity,...) and database activity)
A first method can be: assign to each object a list of keys:
the search will scale with the result set, so It will not depend on the number of relationships and key.
Modelling both keys and key-object relationships as entities like for the inter-users an inter-objects case:
the search will again scale with the result set and thus again does not depend on the net size.
What can I consider as a comparison criteria?