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部分だけを認識があるから)BaseTestEvent
でsetTestOrganiser
とgetTestOrganiser
方法は、複合PKの一部を参照してください。
Propel 1.6.1、PHP 5.2.17。
ありがとうMarc、ありがとう。私は自分でチケットを作ったが、最初にチェックしたかった。 – halfer
こんにちはマーク、迅速な話題。現時点でPropel2の状態は何ですか?今年はかなり規則的なコミットを見ています。だから私は人々がそれを使い、すでに役に立つと思っています。間もなく別のアルファやベータが出てくるかもしれませんか? – halfer
@halfer yeah他のバージョンはおそらく多くの人が使っているように良い考えです。残念ながら、現在のところ時間が少ない:( –