0

User私は、次のようないくつかの(ほとんどすべての物理的な)詳細を含むクラスを持っています: hair color, eyes color, height, ...、および同じ詳細に関する彼の理想的なパートナーについての好み。だから、OOの世界では私は(Javaのようなコード)を持っています:

class User {
    private String name;
    ...
    private Collection<Detail> details; 
    private Collection<Detail> partner_preferences;
}

class UserDetail {
    private User user;
    private Detail detail;
    private String value;
}

class Detail {
    private String name;
    ...
}

ORM を使用してオブジェクトをリレーショナル データベースにマップします。ここで疑問が生じます: ORM はこのような状況をどのように管理するのでしょうか? 弁別器などを追加するのは十分に賢明ですか?

おそらくこのプロジェクトは PHP/Doctrine で実装されるでしょう

4

1 に答える 1

0

Detail クラスは、現時点では Doctrine が (ネイティブに) サポートしていない値オブジェクトのように聞こえますが、少しのユーザーランド コードでそれを行うことができます。

Detail クラスを値オブジェクトとして扱わず、通常のエンティティのように扱う場合、この問題は古典的な多対多の関係になります。これは ORM の非常に基本的な機能です。これをサポートしないもの。

于 2013-11-15T15:54:49.903 に答える