Entity framework 规范化模式中的代码优先关系问题

Entity framework code first relationship issue in a normalized schema

这是一个简单的问题。

我设计了一个具有规范化数据库架构的项目。

我先用代码。

我有一个 table 叫做 JOBS。我还有一个 table 叫做 status。我打算给工作一个状态。状态必须是用户设置的,因此它位于您可以添加的 table 中。例如,工作可以是 "booked"、"parts to be ordered"、"invoiced"。等等

作为 POCO class 我的 table 状态如下:

statusID (PK)

statusName

description.

在 JOBS table 中,我有一个名为 statusID 的列作为非空外键。 EG

jobsID (PK)

clientID (FK)

statusID (FK)

jobTypeID (FK)

。 .

我的问题是,我可以这样做吗?我可以拥有多个带有名称和描述的 statelite tables(客户、状态、工作类型)吗?在 JOBS table 中有一列以 satelite tables 主键作为主键列名称?

我很困惑这代表什么关系(一对一 - 一对多)以及是否可以使用一个 table 的主键作为 JOBS table 中的外键当使用 Code First 接近这个时。在我完成的教程中它并不太清楚。

最重要的是,我想要一份特定的工作并能够为其附加特定的状态,并在视图中显示具有该状态名称和描述的工作...

希望有人能清理泥巴..

西蒙

我认为你想做的是简单的one-to-many关系。 你已经定义了这个,对我来说一切都很好。

但您也可以将导航 属性 添加到您的状态 class 以使这种 one-to-many 关系更加清晰:

public List<Job> Jobs { get; set; }