title: Modeling for Graph DBs
body: <p>Coming from as SQL/NoSQL background I am finding it quite challenging to model (efficiently that is) the simplest of exercises on a Graph DB.</p>
  
  <p>While different technologies have limitations and best practices, I am uncertain whether the mindset that I am using while creating the models is the correct one, hence, I am in the need of guidance, advice and/or resources to help me get closer to the right practices.</p>
  
  <hr>
  
  <p>The initial exercise I have tried is representing a file share entire directory (subfolders and files) in a graph DB. For instance some of the attributes and queries I would like to include are;</p>
  
  <ul>
  <li>The hierarchical structure of the folders</li>
  <li>The aggregate size at the current node</li>
  <li>Being able to search based on who created a file/folder</li>
  <li>Being able to search on file types</li>
  </ul>
  
  <p>This brings me to the following questions</p>
  
  <ol>
  <li><p>When/Which attributes should be used for edges. Only those on which I intend to search? Only relationships?</p></li>
  <li><p>Should I wish to extend my graph capabilities, for instance, search on files bigger than X? How does one try to maximize the future capabilities/flexibility of the model so that such changes do not cause massive impacts.</p></li>
  </ol>
  
  <hr>
  
  <p>Currently I am exploring InfiniteGraph and TitanDB.</p>