数据库设计帮助。很多人创建了一个关联表,对吗?

时间:2010-06-20 22:17:45

标签: sql many-to-many

我正在为我的应用程序设计一个非常简单的数据库,它的配置如下:

Employee
Carnet
Name
LastName

Area
Name

Document
ID
Employee (FK)
Project (FK)

Project
ID
Company (FK)
Title

Company
Name
CEO (FK)
NIT

Person
Carnet
Name
Lastname

现在这个问题的要点是,区域可以有多个文档; 文档可以属于许多区域

我被告知,创建第三个关系表,对吗?

如果我将使用Linq-to-SQL作为访问我的数据库的唯一工具,那么该表中的内容是否能够正常工作。

1 个答案:

答案 0 :(得分:1)

是的......您将拥有一个名为AreaDocuments的表,其中包含名为AreaID和DocumentId的列。这种关系是M x N,其中M个实例可以与N个实例相关联,反之亦然。

示例数据:

AreaId      DocumentId
1           1
1           2
2           1
2           2

如何在代码中处理它:

Document document1 = new Document();
document1.Id = 1;
document1.Title = "Whatever";

Document document2 = new Document();
document2.Id = 2;
document2.Title = "Whatever";

Area area1 = new Area();
area1.Documents.Add(document1);
area1.Documents.Add(document2);

Area area2 = new Area();
area2.Documents.Add(document1);
area2.Documents.Add(document2);

此链接How to implement a many-to-many relationship using Linq to Sql?可以提供有关在LINQ to SQL中使用此类关系的更多信息。