MVC模式中一般是不是一个model对应一张表?

目前在使用的框架开发。在开发过程中发现如果是一个model对应一张表的话操作过程比较清晰,每个model负责对指定的表进行数据操作。
一些公用的操作放到MY_Model(CI框架中自己封装的),然后所有的model都继承MY_Model.
想问下,这行一表一model推荐这样做吗? 如果是100个表的话就要建100个model文件,感觉这样有点在挖坑啊。

PS:在网上搜了下,有的说这样做的话加载的太多,分功能模块做比较好。不太清楚这个功能模块是怎样的一个意思。

阅读 12.5k
4 个回答

楼主你说的这个一万个人有一万个答案。首先,在流行的MVC框架里,默认的是一个model一个表。但是不是一定要这样做,肯定是要看具体情况。如果你用的框架(比如rails),那就按框架标准来。如果没用框架(比如你用nodejs express),你可以自己定义。只要项目结构清晰,没什么不可以的,持续重构才是重点。

另外,我觉得如果你的项目里有100多个表,可能应该考虑的是分拆项目。这么多表,有可能是数据库设计有问题。如果设计没问题,确实有需求,那就应该重构了。比如你说的分功能模块就很好。不知道怎么分的话,问你的技术老大,如果你就是技术老大,那你成长的时候到了。。。不知道怎么分就按具体需求归几个大类,每一类分一个项目,这样就拆开了,不过如果你自己对项目理解就有问题,就需要多想,多思考。这种事情没有正确答案,能用就行。还是那句话,持续重构才是王道。

公共的model方法可以拎出来,比如基本的增删改差。

我是学生,用Java写过一个Web管理系统,MVC中的Model是指JavaBean,即一个类对应数据库中的一张表,题主所谓的表多了Javabean也就多了,个人觉得表一般也不会多到哪儿去,再说量多也并不一定效率低、乱。

我也在用ci
似乎没有规定一个表一个model,文件多了加载确实会慢,所以不需要这样做,可以按功能模块,或者按什么规则分model。
个人看法。