Php 使用单一柔性模型

Php 使用单一柔性模型,php,codeigniter,crud,Php,Codeigniter,Crud,这次是一个关于Mvc中的M的快速问题。(使用codeigniter,但问题是一般性的) 假设我有几个模型负责访问数据库中的多个表,是否不赞成创建一个灵活的模型来处理所有问题 特别是在php codeigniter中,例如: $this->MY_model->getByID($table,$ID) 因此,这个示例代码可以用来获取我想要的任何表的ID,从而节省我的时间,并且我能够重用我的大部分模型代码 这当然可以进一步扩展 $this->MY_model->update($

这次是一个关于Mvc中的M的快速问题。(使用codeigniter,但问题是一般性的)

假设我有几个模型负责访问数据库中的多个表,是否不赞成创建一个灵活的模型来处理所有问题

特别是在php codeigniter中,例如:

$this->MY_model->getByID($table,$ID)
因此,这个示例代码可以用来获取我想要的任何表的ID,从而节省我的时间,并且我能够重用我的大部分模型代码

这当然可以进一步扩展

$this->MY_model->update($table,$info) as an example.
所以我的问题是,如果上述所有条件都可以,那么此类操作的“限制”在哪里?当然,我们不希望在这种类型的模型中有真正具体的东西,比如这种方法:

$this->MY_model->getAllActiveUsers()
我的基本方法是:

可以在多个表中使用的任何方法都应该在扩展模型中使用。 任何应该只在一个表中使用的方法,都应该在它自己的模型中

我不是在寻求意见,而是想知道解决这些问题的标准方法是什么(例如,想象一个有50个模型的应用程序,是否应该为所有50个模型编写CRUD?)


提前谢谢

对于大多数Codeigniter开发人员来说,您所考虑的是相当标准的操作。如果您要在数据库中执行大量CRUD,那么将一组通用CRUD方法添加到您的基本MY_模型并对其进行扩展是有意义的。如果你在谷歌上搜索……你可能会得到100多人的搜索结果,他们已经建立了自己的基本模型,包括CRUD和大多数Codeigniter项目使用的其他常用方法……以下是几个:

CRUD是否应该为所有50个都编写


不需要。您可以扩展基本模型,并在有意义的地方使用它的通用CRUD方法,只需覆盖某些属性(表名)。然后,如果您需要更具体的方法,您可以按照您的建议在新模型中创建其他更细粒度的方法

谢谢你的回答。所以我从你们那里得到的基本上是使用常识,关于什么时候模型方法应该是泛型的还是非泛型的。当然,如果我决定用通用的crud方法创建自己的模型,我会扩展它。再次感谢您的回答:)这里有一个提示:模型不是类。这绝对不是桌上的积垢。你介意再扩展一下吗?模型确实是一个类,至少在codeigniter中是这样:)模型的部分功能是表上的积垢,或者我遗漏了什么?我在许多答案中对此进行了扩展。这里有一个: