用户个人资料在系统上具有个人资料属性。 该属性可以是不同类型(AboutYou,Occupation,AnyhingElse)。
现在我想建立正确的关系:
Profile.cs
public List<ProfileAttribute> Attributes {get; set;}
ProfileAttribute.cs
// holds user entered response on particular subject
// describe yourself (if aboutYou type is selected)
public string Response {get; set;}
public ProfileAttributeType {get; set;}
ProfileAttributeType.cs
public List<ProfileAttribute> Attributes {get; set;}
public string AttributeType {get; set;}
这是遗留代码和db,我正在尝试使用ddd方法构建应用程序并生成数据库表,所以我坚持以下内容。
一个Profile
有很多ProfileAttribute
。所以我通过个人资料方one to many
。
我无法通过ProfileAttribute
方面表达关系。所有个人资料属性是属于一个个人资料还是many to many
?这个Response属性让我很困惑。你会怎么做?
另外,对于ProfileAttribute和ProfileAttributeType,我有以下
一个ProfileAttribute
通过AttributeType
方面有很多ProfileAttribute
个,而通过ProfileAttribute
方我有many to one
(许多类型可以属于多个ProfileAttributes )
答案 0 :(得分:1)
首先,ProfileAttributeType
本身包含ProfileAttribute
的集合似乎很奇怪。也许它会有一组专用类型的属性?
就Profile
和ProfileAttribute
之间的关系而言,该属性应为与汇总相关联的值对象。这意味着这种关系是一对多的。换句话说,一个配置文件可以包含许多属性,但属性属于单个配置文件。属性本身可以按属性类型分组。如果存在与属性类型相关联的行为,则属性类型本身可以是实体或聚合。