模型在MVC框架中应该有多粗粒度?

Abs*_*Abs 6 php model-view-controller frameworks codeigniter

我一直在阅读之前提出的几个问题,我没有遇到过一个以"黑白"为我回答问题的问题!所以,如果这是重复的,请道歉.问题可能类似于询问"一根绳子有多长",但请耐心等待!

对于registernation系统,我有一个用户模型,其功能如下:

  • 添加用户
  • DELETE_USER
  • activate_user

上述用户模型处理一个表.MySQL数据库中的users表.

你可以猜出每个函数的功能但是这个足够粗糙吗?我的意思是我的模型应该包含更广泛的方法,例如:

  • add_record
  • delete_record
  • update_record

我在表中传递的内容和要删除,添加或更新的记录的唯一标识符?

我正在使用codeigniter,但我对如何在纯MVC框架中完成任务感兴趣.

如果这个问题太挑剔,我道歉.

谢谢大家

S.L*_*ott 10

我不确定你的意思是"粗".

"我的模型应该包含更广泛的方法,例如:add_record,delete_record,update_record"

绝对不.决不.这违背了拥有模型的目的.

那种"通用"的东西就是数据库的用途.模型的要点是使通用数据库适应您的特定问题.

您的模型应该特定于您的问题.

"具有以下功能的用户模型:add_user,delete_user,activate_user"这就是重点.您的模型反映了您的应用程序,问题域和解决方案.

你的模型应该能够 - 实际上 - 独立存在.您应该能够将模型包装在命令行应用程序或GUI应用程序或网页中.

  • +1许多人似乎都认为模型应该做的就是CRUD.这意味着控制器需要参与应用程序的业务逻辑.它被称为模型,因为它模拟了您的问题 - 您的问题域中的任何操作都需要模型上的方法 (2认同)
  • 验证也应该出现在模型中,并向控制器报告是否有错误. (2认同)
  • @Abs:正确.控制器只是演示(或视图)和模型之间的一点点胶水.它将GUI操作附加到Model方法.它将模型值复制到Views以进行演示.而已. (2认同)