AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > PHP编程

ecmall数据库关系模型的实现

51自学网 2016-09-26 http://www.wanshiok.com

所谓模型,则是一个一个的数据实体,换句话说就是一个数据表,你可以基于这个模
型,调用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’         => ‘goodsspec’,‘type’          => HAS_MANY,‘foreign_key’   => ‘goods_id’,‘dependent’     => true),// 一个商品对应一个默认规格‘has_default_spec’ => array(‘model’         => ‘goodsspec’,‘type’          => HAS_ONE,‘refer_key’     => ‘default_spec’,‘foreign_key’   => ‘spec_id’,),// 一个商品对应多个属性‘has_goodsattr’ => array(‘model’         => ‘goodsattr’,‘type’          => HAS_MANY,‘foreign_key’   => ‘goods_id’,‘dependent’     => true),// 一个商品对应多个图片‘has_goodsimage’ => array(‘model’         => ‘goodsimage’,‘type’          => HAS_MANY,‘foreign_key’   => ‘goods_id’,‘dependent’     => true),// 一个商品只能属于一个店铺‘belongs_to_store’ => array(‘model’         => ‘store’,‘type’          => BELONGS_TO,‘foreign_key’   => ‘store_id’,‘reverse’       => ‘has_goods’,),// 商品和分类是多对多的关系‘belongs_to_gcategory’ => array(‘model’         => ‘gcategory’,‘type’          => HAS_AND_BELONGS_TO_MANY,‘middle_table’  => ‘category_goods’,‘foreign_key’   => ‘goods_id’,‘reverse’       => ‘has_goods’,),// 商品和会员是多对多的关系(会员收藏商品)‘be_collect’ => array(‘model’         => ‘member’,‘type’          => HAS_AND_BELONGS_TO_MANY,‘middle_table’  => ‘collect’,‘foreign_key’   => ‘item_id’,‘ext_limit’     => array(‘type’ => ‘goods’),‘reverse’       => ‘collect_goods’,),// 商品和推荐类型是多对多的关系 todo‘be_recommend’ => array(‘model’         => ‘recommend’,‘type’          => HAS_AND_BELONGS_TO_MANY,‘middle_table’  => ‘recommended_goods’,‘foreign_key’   => ‘goods_id’,‘reverse’       => ‘recommend_goods’,),);var $_autov = array(‘goods_name’ => array(‘required’  => true,‘filter’    => ‘trim’,),);}



说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
 
上一篇:phpcms v9模板制作常用代码集合  下一篇:discuz模板文件结构