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.
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).
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...
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.