title: MVC: Are Models and Entity objects separate concepts?
body: <p>I asked <a href="https://stackoverflow.com/questions/3547736/what-specifically-belongs-in-a-model-a-view-and-a-controller">here</a> a while ago for some help in understanding MVC, since I'm very new to the topic. I thought I had a decent understanding of it, and this is documented in a <a href="http://www.appscanadian.ca/archives/models-and-views-and-controllers-oh-my/" rel="nofollow noreferrer">blog post</a> I wrote recently on the subject. My understanding basically boils down to this:</p>
  
  <p>Controller: Determines what needs to be done to fulfill a request, and utilizes whatever models it needs to collect/modify as needed. It's basically a manager for a given process.</p>
  
  <p>Views: Presentation only. Once a controller collects what it needs, it creates a specific type of view, hands it the information, and says "show this to the user however you do it."</p>
  
  <p>Models: Behavior of the application. When the controller asks it to extract or modify something, it knows how to do it. It also knows to trigger other models to do related tasks (in my understanding, when a model tries to "vote for something" on StackOverflow, that model knows to ask if a badge should also be granted because of it. The controller doesn't need to care about that).</p>
  
  <p>My question, assuming all of that is more or less accurate, is where do entity objects come in? Are models and entities the same thing, with each object knowing how to persist its own data, or are entities a separate concept that exist on their own and are used throughout the application?</p>
  
  <p>My money is on the latter, since this would allow models to act independently, while all three layers (model, view and controller) could utilize the entities to pass data around as needed. Also, objects and database persistence seem like concerns that should be separated.</p>
  
  <p>To be honest, the more I read about MVC the more confused I get. I'm about ready to just take the core concept (separate presentation from logic) and run with it in whatever way feels right, and not worry too much about the "MVC" label.</p>