数据库关系模型的实现.docxVIP

  • 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

文档评论(0)

1亿VIP精品文档

相关文档