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 回答