I'm just getting into graph databases, and I seem to keep running into a problem deciding between using an "index node" or an "indexed property" for tracking things like "node type". Since I've no real experience thus far, I don't have any information to base the decision on and both approaches seem to be equally valid.

So, the question is: **What are the tradeoffs between two approaches, and how does scale (ie. number of nodes) affect the decision?**

For a sample scenario, lets assume there are two types of "things": `User` and `Product`, and the edges between the User nodes and the Product nodes don't matter so much, but what we care about is if we want `type: User` and `type: Product` properties on each node, or if we want each node to have an edge pointing back at a `User` node and a `Product` node, respectively.

Which approach is better under which circumstances?

Note: I'm looking at Neo4j and Titan in particular, but I would think that this will tend to apply more generally as well.