|
用了CI有一段时间了,ActiveRecord做得很不错,一些简单的CRUD功能可以不用写SQL,十分方便。但是如果碰到业务逻辑比较复杂的情况,我感觉用ActiveRecord比直接写SQL还麻烦。最近在做一个小型的支付扣费系统,用户充值以后,修改用户的余额,然后在流水账表记录一下,需要写 update,select,insert 语句,中间还有连接表的操作。开始用CI的DB类来操作,觉得有点繁琐,后来索性在mysql里面建一个存储过程,然后用$this->db->query() 来执行存储过程,感觉这样model层比较干净。不过这样的存储过程多起来以后,mysql那边就开始乱套了。数据库表结构已经稳定了,极少更改,但是存储过程却会改动,为了区分这个存储过程是哪个model调用的,在存储过程的名字前面加个model名字的前缀,越写越觉得难看。最要命的是存储过程的参数有变动的情况下,PHP代码和数据库两边都要做修改。
现在我的情况是简单的CRUD操作用DB库,复杂的操作用存储过程,但是感觉这样不统一的话系统越大越混乱。不知道大家是怎样设计的。
|
|