2012-03-19 3 views
1

나는 MySQL과 함께 Zend Db Table Relationships과 함께 작업하는 데 사용되었습니다. 나는 manual에서 설명한대로 테이블 클래스에서 $_dependentTables$_referenceMap을 선언했다. 그리고 나서 함수 findDependentRowset(), findParentRow() 등을 사용할 수있었습니다.PostgreSQL과 Zend Framework 테이블 관계 정의?

이제 데이터베이스에서 테이블 간의 관계 (참조)를 정의 할 수있는 PostgreSQL을 사용합니다.

수동 상태 :

Skip declaration of $_dependentTables if you use referential integrity constraints in the RDBMS server to implement cascading operations

어떤 포스트 그레스의 경우이어야한다. 그럼에도 불구하고, 나는 그것을 작동시킬 수 없다. -이없이, 젠드 DB에 포스트 그레스에서 선언 된 참조를 사용하는 것이 가능하다 (재

No reference from table ... to table ...

질문은 : 나는 (!하지만이 필요해서는 안)을 referenceMap를 선언하지 않는 한, 나는 여전히 오류를 얻고있다) referenceMap에서 그들을 선언? 어떻게 - ZF가 Postgres에서 referenceMap으로 그것을로드합니까? 그렇다면 왜 오류가 발생합니까?

+0

당신은 실제로 "참조 무결성 제약 조건"을 postgre에서 사용하고 있습니까? 어쨌든이 문장은 그들 사이의 관계가 아니라'ON UPDATE'와'ON DELETE'에서 사용 된 계단식 연산을 더 많이 참조합니다. [자세한 내용은이 장을 참조하십시오] 링크를 클릭하십시오 (http://framework.zend.com/manual/en/zend.db.table.relationships.html#zend.db.table.relationships.cascading). 그런데 문제가 무엇인지는 분명하지 않습니다. – RockyFord

+0

예, 제약 조건은 DB 수준에서 정의됩니다 (외부 키는 REFERENCES로 지정됩니다). 그러나 명령문은 계단식 연산에만 적용되며 관계에는 적용되지 않을 수도 있습니다. 누구나 확인할 수 있습니까? –

답변

0

링크 된 문서를 읽은 것은이 두 가지가 다른 것을 처리한다는 것입니다.

db 권장 사항의 DRI는 Zend에 계단식 연결을 지정하는 대신 ON UPDATE CASCADEON DELETE CASCADE 작업을 db에 지정하는 것이 좋습니다.

당신이하고있는 일은 뭔가 다른데, 이는 참조 무결성 매핑을 사용하여 관련 행을 가져 오는 것입니다. 이 경우 젠드 (Zend)가 신고해야한다고 생각합니다.