2011-08-15 3 views
0

나는 이런 식으로 뭔가가있는 경우 :Zend가 MyISAM 테이블에 외래 키 제약 조건을 적용 할 수 있습니까? 예를 들어

class Application_Model_DbTable_Events extends Zend_Db_Table_Abstract 
{ 
    protected $_name = 'events'; 
    protected $_dependentTables = array('UsersEvents'); 

    protected $_referenceMap = array(
     'Creator' => array(
      'columns'   => 'created_by', 
      'refTableClass'  => 'Users', 
      'refColumns'  => 'ID' 
    ), 
); 
... 

나는이 낙관적 들리 겠지만 어떻게 든 삽입에 사용자 테이블에 존재를 그 CREATED_BY이 (가) 작성한을 보장 할 수 젠드 것 같아요?

+0

왜 시도해보고 (직접 시도 하겠지만이 컴퓨터에는 PHP가 없습니까?) 나는 그것이 제약을 강요하지 않을 것이라는 느낌이 들지만 결코 알지 못합니다. – Phil

+0

@ Phil, 나는 이미 그것을 시도하고 그것을 작동시키지 못했습니다. 언급하는 것을 잊어 버렸습니다. – grm

답변

1

현재로서는 불가능합니다.

Zend가 현재 지원할 수있는 유일한 참조 무결성은 계단식 삭제 및 계단식 업데이트입니다. 이 매뉴얼이 인용 될 때, InnoDB 대신 MySAM의 MyISAM 테이블 타입을 사용할 때의 예제가 있습니다.

외부 키 확인은 Zend에서 시행하지 않습니다. 그러나 일반적으로 제약 조건은 DB를 처리 할 DB에 넣을 수 있습니다.

환경에서 허용하지 않는 경우 이상적인 상황은 Zend 프레임 워크를 확장하여 이러한 검사를 수행하는 것입니다. 단, PHP에서 검사하는 데 많은 비용이 듭니다.

관련 문제