title: Why does active record pattern not work with rich domain models?
body: <p>I'm reading the architectural patterns chapter of POEAA, and Fowler says that "As the domain logic gets more complicated and you begin moving toward a rich Domain Model (116), the simple approach of an Active Record (160) starts to break down.  The one-to-one match of domain classes to tables starts to fail as you factor domain logic into smaller classes. Relational databases don't handle inheritance, so it becomes difficult to use strategies [Gang of Four] and other neat OO patterns. As the domain logic gets feisty, you want to be able to test it without having to talk to the database all the time."</p>
  
  <p>I didn't really understand this.  By "one to one match of domain classes to tables", does he mean that only for classes where there is no associations or single table inheritance hierarchy?</p>
  
  <p>And why does factoring domain logic into smaller classes cause the pattern to fail?</p>