MVC -保持模型与数据库一致


MVC - Keep model consistent with DB

我是一个前端开发人员,正在尝试用php/mysql编写他的第一个后端RESTful web应用程序。

让我困惑的是弄清楚这个模型是如何工作的。在通常用angularjs编写的fe编程中,模型通常是一个从webservice提供数据的服务。模型本身并不存在,服务只有在收到控制器的调用时才会提供它。

在后端场景中,我有一个存储数据的DB,从那里我必须检索数据,这将构成我的模型。对我来说,问题是:数据正在从与此后端对话的每个客户端不断更新,所以我需要保持我的模型与不断变化的DB一致。我使用了类似于前端的实现,只有当控制器命令与它进行一些交互时才创建模型,这对我来说解决了问题。

但是我的一个朋友(非常熟练)告诉我这种方法是错误的,并且该模型必须独立于控制器。但是,如果DB发生变化,我如何意识到这一点,然后更新我的模型?

我希望我能说清楚

在后端MVC中,模型通常分为三部分:Domain、DAO和Service。

Domain是数据的表示,在这种情况下是只有属性的类。DAO是一个实现对数据库(或文件等)访问的类。通常每个Domain类都有一个DAO类,方法接收或返回这些类的对象。服务是控制器访问来与模型对话的,它实现了高级方法。

这样就可以访问所有控制器中模型的信息。每次你需要信息的时候,你调用一个服务的方法,比如'getUsers()'。