2011-10-30 111 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会在构建时检测到它并将它踢出去 - 但显然不是!我看不出为什么这会有用 - BaseTestEvent中的setTestOrganisergetTestOrganiser方法仅涉及组合PK的一部分(因为当然,事件方只知道organiser_id部分)。

Propel 1.6.1,PHP 5.2.17。

回答

0

不,他们没用。目前,Propel没有检查这个用例。我已经为它设置了created a issue,所以当我们实施它时,您不会再次碰到它。

+0

谢谢Marc,感谢。我本人自己创造了一张票,但首先要检查。 – halfer

+0

嗨马克,快速脱离主题。 Propel2目前的状态如何?今年我看到了一个相当常见的提交流,所以我认为人们正在使用它,并且已经发现它已经很有用。可能会出现另一个alpha或beta版吗? – halfer

+0

@halfer是另一个版本可能是一个好主意,因为许多人使用它。不幸的是目前较少的时间:( –

相关问题