[eluser]drewbee[/eluser]
My controllers reflect a little bit of both. They are very loose.
I will never enter a table name in a controller as it is taken care of in the model, however, I do not force columns to be entered within the model (if that makes sense?).
IE
I have a model method that grabs users get_users().
This method will take one parameter that is an array filling out the $where clause, so when I call it:
$where = array('account_id' => 32);
$this->users_model->get_users($where);