什么是模型呢?最开始我也很奇怪,已经有数据库了,在再增加模型层有什么用呢?我们知道如果用非 mvc 等架构,我们是可以直接读写数据库的,但是你会发现每个地方都要去写 sql,非常麻烦。这时如果我们通过模型层就可以不用重复 sql 语句了。
模型和数据库的结构是一致的,模型相当于给我们提供了一个接口,通过模型我们就方便的操作数据库了。
举个例子,有个数据表 posts,他有两个字段,id 和 title,我们就建立一个 Post 模型,也就是建立名字是 Post 的类,在这个类里面我们建立许多的方法,去操作数据库。比如建个方法叫 all,作用就是取出 posts 表里的每一条记录。那么我们就可以用 Post.all 的方式读取 posts 表的数据了。
另外,你也会发现,如果我们开发用的是 sqlite,但是部署却用的是 mysql。因为我们有模型层,就可以直接换一下数据库的接口,必担心换了数据库会因为数据库的不同而产生问题了。
最后再说下,我们的所有程序最后到计算机的 cpu,他只能执行很简单的一条条预设的指令,但是我们如果要一条条写就累死了(比如汇编),这个时候我们就用各种方式去组织代码,方便我们写程序,比如函数,对象,分层,所以无论多么复杂的代码,本质上都指令的组织方式。关键是了解这种组织方式。
你只要知道,所有的代码最后到 cpu 那里就是这样的,
a=1
b=2
c=a+b