title: Database Schema for complex relationships between many types - Table per hierarchy?
body: <p>I have five types between which I need to model relationships. Any type can be related to any other type. I figure I must therefore have them inherit from a base type so I can have a Relationship table that has just two foreign keys (the two related entities). But I also want to model relationships between relationships, which means the Relationship type must also inherit from the Base type.   </p>
  
  <p>I therefore have all my types inheriting from one base type. Implementing a table per hierarchy would leave me with one table. Is there a better way to handle complex relationships such as those described here? Am I trying to do something particularly difficult?</p>
  
  <p>I have looked very briefly at using a graph database (such as Neo4j), which does seem like it may be appropriate for this kind of modelling. But I am keen to get something off the ground with technology I'm familiar with. I want to let Entity Framework and Breeze do most of my work for me.</p>