实现"多对多"数据库

Rav*_*mer 2 c# sql database-design many-to-many

问候,堆栈溢出

在我的数据库中,我已经有一个表,"联系人",其中包含个人的记录.我的数据库中还有其他几个表,它们代表包含表示特定技能的记录的"技能组".

1)我是否正确地将其视为"多对多"关系?(每个联系人可以有多个技能组,每个技能组可以属于多个联系人)

2)我是数据库的新手 - 我想链接表吗?

3)有没有在我的计划(C来实现此#+ Windows窗体),使得在"联系人"表中的任何给定的记录,无论是所有相关的"技能"表的名称的方法所有的"技能"记录相关联可以检索"联系人"记录吗?

(数据库位于SQL Server Express 2008上.通过VisualStudio 2008内置的"数据连接向导"从数据库中检索数据)

Jus*_*ner 10

你是对的.那应该是多对多的关系.要在SQL中实现此目标,您应该有三个表:

联系 - 存储联系信息
SkillSet - 存储个人技能组信息
ContactSkillSet - 根据主键将技能组映射到联系人

至于你的上一个问题,有多种方法可以做到这一点.这完全取决于您访问数据的方式(DataSet,LINQ to SQL,Entity Framework等).如果您提供更多详细信息,我们可以为您提供更具体的答案.