推动ORM三种方式多对多关系

时间:2013-11-12 16:48:59

标签: php mysql orm doctrine propel

我正在尝试将Propel 1.7作为重构的一部分添加到遗留的php项目中。我已经生成了schema.xml文件,现在正在添加多对多关系。

但是,有一个表对三对多关系进行编码,因此它有三列作为主键,每个列都引用不同表中的不同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能做得更好吗?

0 个答案:

没有答案