4

ページ、製品、メディアの 3 つのエンティティがあるとします。

さて、私はこの現実を持ちたいと思います:

Page <-(many-to-many)-> Media

Product <-(many-to-many)-> Media

これを解決するための一般的なアプローチを使用すると、非常によく似た 2 つのテーブルが生成されます。

私の質問は: Doctrine を使用して両方のリレーションに単一のテーブルを使用できますか?

私が必要としているのは、特定の行の対応するメディアが製品かページかを示す新しい列を提案する方法だけです。

4

1 に答える 1

2

答えはノーです。リレーション テーブル N:N には一意のテーブル名が必要です。しかし...そのような構造を作成することができます:

Page <--1:N--> MyGreatJoinTable <--N:1--> Media
Product <--1:N--> MyGreatJoinTable <--N:1--> Media

別のテーブルを参照しているため、参照を記述する必要はありませんが、必要に応じて記述することができます。

もちろん、MyGreatJoinTable には少なくとも 3 つの列があります。

- PageId
- ProductId
- MediaId
于 2013-09-21T07:51:33.833 に答える