- 14
- 0
- 约7.19千字
- 约 11页
- 2017-02-05 发布于北京
- 举报
数据库关系模型的实现
对于数据库关系模型的分析,我觉得需要从两个函数说起://获取一个模型function m($model_name, $params = array(), $is_new = false)??{static $models = array();$model_hash = md5($model_name . var_export($params, true));if ($is_new || !isset($models[$model_hash])){$model_file = ROOT_PATH . ‘/includes/models/’ . $model_name .‘.model.php’;if (!is_file($model_file)){/* 不存在该文件,则无法获取模型 */return false;}include_once($model_file);$model_name = ucfirst($model_name) . ‘Model’;if ($is_new){return new $model_name($params, db());}$models[$model_hash] = new $model_name($params, db());}return $models[$model_hash];}//获取一个业务模型function bm($model_name, $params = array(), $is_new = false){static $models = array();$model_hash = md5($model_name . var_export($params, true));if ($is_new || !isset($models[$model_hash])){$model_file = ROOT_PATH . ‘/includes/models/’ . $model_name .‘.model.php’;if (!is_file($model_file)){/* 不存在该文件,则无法获取模型 */return false;}include_once($model_file);$model_name = ucfirst($model_name) . ‘BModel’;if ($is_new){return new $model_name($params, db());}$models[$model_hash] = new $model_name($params, db());}return $models[$model_hash];}? 所谓模型,则是一个一个的数据实体,换句话说就是一个数据表,你可以基于这个模型,调用model.base.php中的数据库操作函数来对数据进行增、删、改、查的操作。这里的业务模型,是在实体模型基础上,再继承一次,然后对一些方法进行重写。系统中只有三个实体有业务模型:推荐类型 recommend;商品数据模型 goods;商品分类业务模型 gcategory;具体操作例子://物品表的操作:$model_goods = m(‘goods’);$goods_info = $model_goods-get($goods_id);这里需要解释一下对于数据模型的操作是怎样的一个函数调用过程:首先:$model_goods = m(‘goods’);我们看一下m()函数的代码,其中var_export()函数则是将传进来的实体,返回相应的实体类对象,因为所有的model都继承至model.base.php中的BaseModel类,这个类中定义了基本所有的操作函数,因此$model_goods对象可以对数据库进行相应的操作。而我们再看看goods.model.php中的GoodsModel的代码:class GoodsModel extends BaseModel{var $table? = ‘goods’;var $prikey = ‘goods_id’;var $alias? = ‘g’;//缩写var $_name? = ‘goods’;var $temp; // 临时变量var $_relation = array(// 一个商品对应一条商品统计记录‘has_goodsstatistics’ = array(‘model’???????? = ‘goodsstatistics’,‘type’????????? = HAS_ONE,‘foreign_key’?? = ‘goods_id’,‘dependent’???? = true),// 一个商品对应多个规格‘has_goodsspec’ = array(‘model’???????? = ‘good
您可能关注的文档
最近下载
- 学生食堂满意度调查报告5篇.docx VIP
- 重组人生长激素冻干配方筛选和稳定性研究.pdf VIP
- 药事管理与法规-执业药师考试《药事管理与法规》名师预测卷3.docx VIP
- 消毒供应室2025年年底工作总结及2026年工作计划.docx
- 2025年国家能源集团科学技术研究总院社会招聘(30人)笔试参考题库附答案解析.docx VIP
- 云南省昆明市第一中学2025届高三下学期第七次联考(一模)英语试题(含答案,无听力原文、答案及音频).pdf VIP
- 防范非法校园贷教育.pptx VIP
- 药事管理与法规-2025年执业药师《药事管理与法规》超压卷2.docx VIP
- 药事管理与法规-2021年执业药师考试《药事管理与法规》真题.docx VIP
- 防范非法校园贷主题班会.pptx VIP
原创力文档

文档评论(0)