SQL table 至 类
SQL table to classes
我有一个建模问题需要帮助理解。
我有一个叫 Employee 的 table 和一个叫 Office 的 table。 类 之间存在一对多关系(1 个员工有一个办公室,一个办公室有多个员工)。
目标是从那些 table 中创建 类,我找到了两种方法:
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; }
}
哪种方法是建模的正确方法?
我发现第二种方法更容易使用(更自然)。原因是,当您以这种方式建模数据时:
public Class Employee
{
string Name {get; set;}
}
public Class Office
{
string OfficeName {get; set}
List<Employee>Employees {get; set}
}
您可以通过以下方式创建这些 table(或使用 entity framework 为您创建 table):
// Office table // Employee table
----------------- ----------------------------------
| Id(PK) | Name | --------> | Id(PK) | OfficeId(FK) | Name |
----------------- ----------------------------------
// PK: Primary Key
// FK: Foreign Key
one-to-many
关系通过 employee
table 中的 FK
表示,employee
有一个 FK
到办公室he/she 属于哪里。然后,通过使用简单的 joins
,您可以从 table 中获取所需的所有信息。例如
获得 office
的全部 employees
SQL: SELECT Offices.OfficeId, Offices.Name, Employees.Name
FROM Offices
JOIN Employees ON Offices.Id = Employees.OfficeId
WHERE Offices.Name = 'some_name'
// Or you can use LINQ had you had used Entity Framework
如果您使用第一种方法,这会有点复杂。
我有一个建模问题需要帮助理解。
我有一个叫 Employee 的 table 和一个叫 Office 的 table。 类 之间存在一对多关系(1 个员工有一个办公室,一个办公室有多个员工)。
目标是从那些 table 中创建 类,我找到了两种方法:
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; }
}
哪种方法是建模的正确方法?
我发现第二种方法更容易使用(更自然)。原因是,当您以这种方式建模数据时:
public Class Employee
{
string Name {get; set;}
}
public Class Office
{
string OfficeName {get; set}
List<Employee>Employees {get; set}
}
您可以通过以下方式创建这些 table(或使用 entity framework 为您创建 table):
// Office table // Employee table
----------------- ----------------------------------
| Id(PK) | Name | --------> | Id(PK) | OfficeId(FK) | Name |
----------------- ----------------------------------
// PK: Primary Key
// FK: Foreign Key
one-to-many
关系通过 employee
table 中的 FK
表示,employee
有一个 FK
到办公室he/she 属于哪里。然后,通过使用简单的 joins
,您可以从 table 中获取所需的所有信息。例如
获得 office
employees
SQL: SELECT Offices.OfficeId, Offices.Name, Employees.Name
FROM Offices
JOIN Employees ON Offices.Id = Employees.OfficeId
WHERE Offices.Name = 'some_name'
// Or you can use LINQ had you had used Entity Framework
如果您使用第一种方法,这会有点复杂。