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会在构建时检测到它并将它踢出去 - 但显然不是!我看不出为什么这会有用 - BaseTestEvent
中的setTestOrganiser
和getTestOrganiser
方法仅涉及组合PK的一部分(因为当然,事件方只知道organiser_id部分)。
Propel 1.6.1,PHP 5.2.17。
谢谢Marc,感谢。我本人自己创造了一张票,但首先要检查。 – halfer
嗨马克,快速脱离主题。 Propel2目前的状态如何?今年我看到了一个相当常见的提交流,所以我认为人们正在使用它,并且已经发现它已经很有用。可能会出现另一个alpha或beta版吗? – halfer
@halfer是另一个版本可能是一个好主意,因为许多人使用它。不幸的是目前较少的时间:( –