程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Zend Framework 數據表級聯操作

Zend Framework 數據表級聯操作

編輯:PHP綜合

若您的數據庫有內置級聯操作,那麼以下內容就不用看了,若您使用的是MySQL,同時數據表類型又是MyISAM,那麼您可以繼續往下看了。
Zend_Db_Table_Abstract 提供了級聯功能,但是很不幸只有當關鏈表的主鍵(Primary Key)發生變化時才會進行相關級聯,若我有AB兩個表,A表是主要信息,B表是詳細信息,那麼如果要同時更新AB表的非主鍵內容,很遺憾,Zend 不提供相關操作,只能自己擴充了,方法其實很簡單,我們下面慢慢來分析。
主表:
class TableA extends Zend_Db_Table_Abstract     protected $_name = 'table_a';//數據表名稱
    protected $_rowClass = 'TableARow';//數據表的RowClass名稱
    protected $_dependentTables = array('TableB');//子關系表的類名
}

class TableB extends Zend_Db_Table_Abstract     protected $_name = 'table_b';
    protected $_referenceMap = array(
          'TableA' => array(
          'columns' => array('id'),//和主表的關聯鍵
          'refTableClass' => 'TableA',//主表的類名
          'refColumns' => array('id'),//主表的主鍵
          'onUpdate' => self::CASCADE,//更新主表記錄時是否更新關聯記錄
          'onDelete' => self::CASCADE//刪除主表記錄時是否更新關聯記錄 }

class TableARow extends Zend_Db_Table_Row_Abstract     protected function _update()         $objTableBRowset = $this->findDependentRowset('TableB');
        //這裡開始寫table_b表的處理方式 }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved