猿问

SQL 表到类

我有一个建模问题需要帮助理解。


我有一张名为 Employee 的表和一张名为 Office 的表。类之间是一对多的关系(1 个员工有一个办公室,一个办公室有多个员工)。


目标是从这些表创建类,我找到了两种方法:


1:


public class Employee

{

    private string Name   { get; set; }

    private Office Office { get; set; }

}


public class Office

{

    private string OfficeName { get; set; }

}

2:


public class Employee

{

    private string Name {get; set;}

}


public class Office

{

    private string OfficeName       { get; set; }

    private List<Employee>Employees { get; set; }

}

哪种方式是建模的正确方法?


哔哔one
浏览 189回答 1
1回答

慕丝7291255

我发现第二种方法更容易使用(更自然)。原因是,当您以这种方式对数据建模时:public Class Employee{&nbsp; &nbsp; string Name {get; set;}}public Class Office{&nbsp; &nbsp; string OfficeName {get; set}&nbsp; &nbsp; List<Employee>Employees {get; set}}您可以通过以下方式创建这些表(或使用实体框架为您创建表):// Office table&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Employee table-----------------&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;----------------------------------| Id(PK) | Name | --------> | Id(PK) | OfficeId(FK) | Name |&nbsp;&nbsp;-----------------&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;----------------------------------// PK: Primary Key// FK: Foreign Key该one-to-many关系是通过代表FK的employee表和employee有一个FK他/她所属的办公室。然后通过使用 simplejoins您可以从表格中获取您需要的所有信息。例如得到所有employees的office&nbsp; &nbsp; SQL: SELECT Offices.OfficeId, Offices.Name, Employees.Name&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FROM Offices&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;JOIN Employees ON Offices.Id = Employees.OfficeId&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;WHERE Offices.Name = 'some_name'&nbsp; &nbsp; // Or you can use LINQ had you had used Entity Framework如果您使用第一种方法,这会更复杂一些。
随时随地看视频慕课网APP
我要回答