C# 在CRM项目中建立联系人之间的家庭关系
我想在联系人之间建立家庭关系,并发现联系人之间隐藏的关系,并在sql server中使用递归进行显示。 例如: 我的这张表包含:C# 在CRM项目中建立联系人之间的家庭关系,c#,sql-server,sql-server-2008,tree,C#,Sql Server,Sql Server 2008,Tree,我想在联系人之间建立家庭关系,并发现联系人之间隐藏的关系,并在sql server中使用递归进行显示。 例如: 我的这张表包含: User_id_1 User_id_2 relation 1 2 Parent-child 2 3 Brother-brother 3 4 Brother-brother 我的存储过程应该发现特定用户id的所有关系。 如果使用用户_id=4
User_id_1 User_id_2 relation
1 2 Parent-child
2 3 Brother-brother
3 4 Brother-brother
我的存储过程应该发现特定用户id的所有关系。
如果使用用户_id=4调用此sp,
它应该给我所有用户的关系_id=4
它应该知道4比3和2是兄弟,
1是4的父母。
如何做到这一点?您可以从另外两个表开始,一个用于配置关系(类似于当前的
关系
列),另一个用于配置在递归查找过程中遍历哪些关系
Table: Relationship
Id: int
Description: string
Table: RelationshipToRelationship
FromRelationshipId: int
ToRelationshipId: int
数据如下所示:
关系
Id Description
== ===============
1 Brother-Brother
2 Parent-Child
FromRelationshipId ToRelationshipId
================== ================
1 1
1 2
关系与关系
Id Description
== ===============
1 Brother-Brother
2 Parent-Child
FromRelationshipId ToRelationshipId
================== ================
1 1
1 2
如果/当我解决它时,将使用可行的查询进行更新
我预见的问题:
- 您提出了最简单的案例(我哥哥的父母是我的父母),但在其他案例中(我哥哥的孩子不是我的孩子)出现了问题
- 标记关系时出现类似问题(您可以将我兄弟的父母标记为我的
,但您兄弟的孩子需要标记为父子
)兄弟-兄弟-父子
一切都很快变得混乱起来。您是否最好在希望关联的每一方之间保持直接关系(即,表中的另外两条记录将用户4&2链接为兄弟,4&1链接为父子)?您可以从另外两个表开始,1配置关系(类似于您当前的
关系
列)另一个用于配置在递归查找过程中遍历哪些关系
Table: Relationship
Id: int
Description: string
Table: RelationshipToRelationship
FromRelationshipId: int
ToRelationshipId: int
数据如下所示:
关系
Id Description
== ===============
1 Brother-Brother
2 Parent-Child
FromRelationshipId ToRelationshipId
================== ================
1 1
1 2
关系与关系
Id Description
== ===============
1 Brother-Brother
2 Parent-Child
FromRelationshipId ToRelationshipId
================== ================
1 1
1 2
如果/当我解决它时,将使用可行的查询进行更新
我预见的问题:
- 您提出了最简单的案例(我哥哥的父母是我的父母),但在其他案例中(我哥哥的孩子不是我的孩子)出现了问题
- 标记关系时出现类似问题(您可以将我兄弟的父母标记为我的
,但您兄弟的孩子需要标记为父子
)兄弟-兄弟-父子
一切都很快变得混乱起来。您是否最好在希望关联的每一方之间保持直接关系(即,您表中的另外两条记录将用户4&2链接为兄弟,4&1链接为父子)?ok thx,,但我需要一种递归技术,使用sql server中的函数和Sps获取我想要知道的特定用户的所有关系?我的意思是在第一条记录中,1是2的父项,另一条记录表示2是3的兄弟,3是4的兄弟,,我想在我的存储过程中做什么,当我调用具有4个用户id的存储过程时,它将返回与4=>answer(1,2,3)相关的所有用户,它应该步进throw table并给我所有连接到此用户的用户id?好的,thx,,但我需要一种递归技术,使用sql server中的函数和Sps获取我想要知道的特定用户的所有关系?我的意思是在第一条记录中,1是2的父项,另一条记录表示2是3的兄弟,3是4的兄弟,,在我的存储过程中,我想做什么,当我调用具有4个用户id的存储过程时,它将返回与4=>answer(1,2,3)相关的所有用户,它应该步骤throw table并给我连接到此用户的所有用户id?