2012-03-19 2 views
1

Я привык работать с Zend Db Table Relationships с MySQL. Я объявил $_dependentTables и $_referenceMap в классах таблицы, как описано в manual. Затем удалось работать с функциями findDependentRowset(), findParentRow() и т. Д.Определение отношений таблицы Zend Framework с PostgreSQL?

Теперь я использую PostgreSQL, который может определять отношения (ССЫЛКИ) между таблицами прямо в базе данных.

В пособии говорится:

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

, что должно быть в случае Postgres. Несмотря на это, я не могу заставить его работать. Если я не объявить referenceMap (! Но это не должно быть нужно), я все еще получаю ошибку:

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

вопрос - это возможность использовать ссылки, объявленным в Postgres в Zend Db, без (пере) объявив их в 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

Да, ограничения определены на уровне БД (внешние ключи заданы СПИСОК ЛИТЕРАТУРЫ). Но вы можете сказать, что утверждение применимо только к каскадным операциям, а не к отношениям. Кто-нибудь может это подтвердить? –

ответ

0

Мое чтение связанной документации состоит в том, что эти два адреса имеют что-то другое.

Рекомендация DRI в рекомендации db является рекомендацией указывать ON UPDATE CASCADE и ON DELETE CASCADE операции в db, а не сообщать Zend каскаду.

Что вы делаете, это что-то другое, что должно использовать сопоставление ссылочной целостности для извлечения связанных строк. В этом случае, похоже, Zend требует, чтобы вы его объявили.

Смежные вопросы