2012-03-19 8 views
1

私はZend Db Table Relationshipsと一緒にMySQLを使用しました。私は、manualに記述されているように、テーブルクラスに$_dependentTables$_referenceMapと宣言しました。 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の場合はどうあるべきか。それにもかかわらず、私はそれを働かせることができません。 - それはせずに、ZendのDBにはPostgresで宣言された参照を使用することが可能である(再

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

リンクされたドキュメントの私の読書は、これら2つのものが異なるものであることです。

db推奨のDRIは、Zendにカスケードするのではなく、ON UPDATE CASCADEON DELETE CASCADEの操作をdbに指定することをお勧めします。

何かしていることは、参照整合性マッピングを使用して関連する行をフェッチすることです。この場合、Zendは宣言する必要があります。

関連する問題