具有类型或状态 table 而不是类型或状态列的一对一 ER

One to One ER with a Type or Status table instead of a Type or Status column

我在 ER 建模方面还有很长的路要走,您很快就会看到,但是我有一个项目正在为一家建筑公司做,而且我正忙于数据库模型。

该公司是一家屋顶检查公司,他们有现场项目和现场潜在项目的建议。

项目可以是咨询、检查或报告(类型)。
该项目已完成、正在进行或处于他们称为 RFF(准备好最终)(状态)的阶段。

提案可以与项目具有相同的 TYPE,但具有自己的 STATUS 状态。

一个项目还包含许多具有自己的一组 STATUS 的行程。

所以我的当前模型看起来像这样:

Simplified Er Model

这是一个好方法吗?还是为每个实体设置一个单独的 table 更好,例如:Project_Status 和 Project_Type 等……?

或者甚至只是项目中的一列作为字符串,并将应用程序中的输入限制为 3 种类型之一?

我喜欢分离实体的方法,并且在我的工作中使用它。 这样我就可以更灵活地设置 TYPE 和 STATUS 的值。 从软件开发人员的角度来看,我宁愿使用它们:

  1. 当我需要在未来的开发中使用这些值时,例如:依赖于 id 和值的组合框和下拉列表等表单组件。
  2. 当应该向类型和状态添加更多值时,我将使用简单的插入查询将它们添加到表中,而不是更改代码。