2011-10-30 17 views
0

Propelを使用して、ユーザーが独自のスキーマを開発できるシステムを開発しているので、いくつかの「エッジケース」を見ています。私はPropelが許可してはいけないと考えるスキーマに出くわしましたが、ビルドするようです。誰もこれのユースケースを提案することはできますか?Propelの不完全なキー参照は有用ですか?

<?xml version="1.0" encoding="UTF-8"?> 
<database name="test" defaultIdMethod="native"> 
    <table name="test_event"> 
     <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true" /> 
     <column name="name" type="varchar" size="50" required="true" /> 
     <column name="description" type="varchar" size="250" /> 
     <column name="location" type="varchar" size="250" /> 
     <column name="nearest_city" type="varchar" size="100" /> 
     <column name="organiser_id" type="integer" required="true" /> 
     <!-- This FK is incomplete --> 
     <foreign-key foreignTable="test_organiser"> 
      <reference local="organiser_id" foreign="id" /> 
     </foreign-key> 
    </table> 

    <table name="test_organiser"> 
     <!-- Has composite PK --> 
     <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true" /> 
     <column name="secondary" type="integer" required="true" primaryKey="true" /> 
     <column name="name" type="varchar" size="50" required="true" />  
     <column name="email" type="varchar" size="100" /> 
    </table> 
</database> 

ご覧のとおり、イベントテーブルにはオーガナイザテーブルへの完全な外部参照がありません。私はPropelがそれを検出し、ビルド時にそれを蹴ったと思っていただろうが、明らかにそうではなかった!これは有用であろう、なぜ私が見ることができない - (もちろん、イベント側はorganiser_id部分だけを認識があるから)BaseTestEventsetTestOrganisergetTestOrganiser方法は、複合PKの一部を参照してください。

Propel 1.6.1、PHP 5.2.17。

答えて

0

いいえ、それらは有用ではありません。 Propelは現時点でこのユースケースをチェックしていません。私はそれのためにcreated a issueを持っていますので、私たちがそれを実装したときにもう一度それをつまずくことはありません。

+0

ありがとうMarc、ありがとう。私は自分でチケットを作ったが、最初にチェックしたかった。 – halfer

+0

こんにちはマーク、迅速な話題。現時点でPropel2の状態は何ですか?今年はかなり規則的なコミットを見ています。だから私は人々がそれを使い、すでに役に立つと思っています。間もなく別のアルファやベータが出てくるかもしれませんか? – halfer

+0

@halfer yeah他のバージョンはおそらく多くの人が使っているように良い考えです。残念ながら、現在のところ時間が少ない:( –

関連する問題