MVC - Diseño de modelos ¿Como se plantea?

Iniciado por Littl3, 16 Septiembre 2011, 13:07 PM

0 Miembros y 1 Visitante están viendo este tema.

Littl3

Buenos días,

Tengo una duda sobre los modelos en MVC, cuando me pongo a codear un modelo me vienen 2 formas de diseñarlo y no se cual es la correcta.


  • 1- Pensar en que el modelo se refiere a una de las tablas de la base de datos, por lo tanto tiene que contener todas las acciones que voy a realizar con esa tabla.. alta, edit, delete, update, counts.. etc..

  • 2- Pensar que estoy diseñando un modelo X para un controlador X, por lo que el modelo puede que tenga acceso a varias tablas y su labor es servir al controlador X que voy a desarrollar mas tarde.


¿Cual seria la mejor forma de plantearlo?

Gracias, un saludo.

madpitbull_99

En los Modelos intenta englobar todas las operaciones que trabajan y manejan datos, como su nombre bien lo indica, en los Controladores,
encargate solamente de direccionar/controlar.

Así tendrás un código "más limpio". En Wikipedia hay un buen ejemplo de como debería seguirse el patrón MVC (_http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller).




«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

Littl3

Ese tema esta claro, los modelos son para los accesos a los datos, ahora, imaginemos estas tablas:

Users
      Name
      id_type


Type_users
      id
      name
      mail_group



Si necesito saber que mail_group tiene el usuario "Fulanito" ¿sería correcto definir un método en el modelo users para obtenerlo? "get_mail_group" que accederá a la tabla type_user aun perteneciendo al modelo users y siendo hermana de "add_user" , "delete_user", "update_user" etc...


madpitbull_99

Exacto, por ejemplo, todos los métodos que manejen los usuarios los puedes definir en el modelo users_model.php.

CitarEse tema esta claro, los modelos son para los accesos a los datos, ahora, imaginemos estas tablas:

Muy claro no está, sino, no estarías preguntando esto.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red