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