title: In Neo4j, what level of specificity should be used when granularity level can be unlimited?
body: <p>The hardest thing to wrap my head around when using a graph database, is choosing level of granularity. Lets say I have a graph for things that occur at certain days of the week: trash day, taco tuesday, BYOB friday, etc. </p>
  
  <ul>
  <li>I can make each day a node (Mon, Tue, Wed, ...), that way, querying for specific days is fast.</li>
  <li>I can make a node called Day, and add the property name with the day of the week. That way, showing all days in a graph is easy to query for.</li>
  </ul>
  
  <p>Thinking to myself, making nodes very specific is bad because there is not limit to granularity. For example saturday morning, evening and night, or worse, a new node per hour of each day. I could also make edges a component of the granularity by saying saturday node is linked by "evening" edge to trash day node. </p>
  
  <p>I come across similar problems every now and then, for example; should I create a new node based on a person's full name, or a node called "Person" with property "name". Then I make nodes either specific or general based on convenience, but I feel there may be some best practice or higher level principle I'm missing. It's not clear to me how to judge which way is better.</p>