代码之家  ›  专栏  ›  技术社区  ›  Sergio Tapia

数据库设计帮助。多对多创建关联表,对吗?

  •  1
  • Sergio Tapia  · 技术社区  · 14 年前

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

    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 回复  |  直到 14 年前
        1
  •  1
  •   Leniel Maccaferri    14 年前

    对。。。您将拥有一个名为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中使用这种关系的更多信息。