C# 共享实体之谜的建模

C# 共享实体之谜的建模,c#,nhibernate,oop,architecture,C#,Nhibernate,Oop,Architecture,在我的域中有以下实体: 项目 任务 用户 上下文 用户可以有多个项目、任务和上下文。项目可以有任务和上下文,任务可以有上下文 我有点不确定如何最好地建模上下文,因为它将属于多个实体,即用户可以添加上下文列表,这些上下文将与te用户关联。然后,用户可以添加一个项目,并从用户上下文列表中选择要添加到项目的上下文,从而有效地创建项目上下文 任何帮助都将不胜感激,thansk提前…取决于上下文表的用途。您是否可以创建一个在用户、任务或项目之间共享的上下文?如果是这样,那么多对多关系表可能对每个不同的联接

在我的域中有以下实体:

项目
任务
用户
上下文

用户可以有多个项目、任务和上下文。项目可以有任务和上下文,任务可以有上下文

我有点不确定如何最好地建模上下文,因为它将属于多个实体,即用户可以添加上下文列表,这些上下文将与te用户关联。然后,用户可以添加一个项目,并从用户上下文列表中选择要添加到项目的上下文,从而有效地创建项目上下文


任何帮助都将不胜感激,thansk提前…

取决于上下文表的用途。您是否可以创建一个在用户、任务或项目之间共享的上下文?如果是这样,那么多对多关系表可能对每个不同的联接都有帮助。因此需要一个UserContext、ProjectContext、TaskContext表。它们只包含两个表的主键,可能还有一个时间戳,由您决定

如果您不与其他表共享任何内容,因此每个链接对于创建它的人来说都是唯一的,那么您可能只需要向混合添加一个上下文类型。因此,ContextType表将添加到混合中。您仍然需要一个关系表,这样一个人可以有多个上下文,等等。这样,您就可以有一个ContextRelationshipTable,将外键从父表链接到上下文表,并且可以使用该类型作为筛选器


不过,我可能只会使用多对多方法,只会使用链接表。

谢谢Joshua,这也是我一直在考虑的方法。