1

作为重构的一部分,我正在尝试将 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 会做得更好吗?

4

0 回答 0