1

リファクタリングの一環として、Propel 1.7 をレガシー php プロジェクトに追加しようとしています。schema.xml ファイルを生成し、多対多の関係を追加しています。

ただし、3 方向の多対多の関係をエンコードするテーブルがあるため、主キーとして 3 つの列があり、それぞれが異なるテーブルの異なる id 列を参照します。

基本的に、ウェブサイトは国と言語によって定義される概念です。

ads_to_websites:
    ad_id | country_id | lang_id

参照する

ads->id
country->id
lang->id

これは Propel でサポートされていますか? 外部キーと主キーを schema.xml に追加する方法は理解していますが、テーブルを介して結合したい場合はどうなりますか? isCrossRef を使用できますか? ドキュメントは少しあいまいです。

または、新しいテーブルを作成する必要があります。

websites:
    id | country_id | lang_id

を参照して

country->id
lang->id

ads_to_websites:
    website_id | ad_id

を参照して

websites->id
ads->id

これは可能であり、データモデルに適合すると思いますが、実装するのは面倒です(別のプロジェクトが同じデータベースを使用しています)。

あるいは、Doctrine のような別の ORM でこれをよりうまく行うことができますか?

4

0 に答える 0