3

我正在用 C# 使用 SQL 数据库做一个应用程序。

我有一个模型:

Person()
{
  string id;//unike key
  string name;
  List<string> responsableOf;//list of id
}

我想把它表示成一个表。

哪些是表格的正确字段?

4

3 回答 3

4

这取决于该人与他将负责的其他人之间存在什么样的关系。

如果它是父子关系,即组合,您可以使用自引用表。就像是:

Persons具有以下列:

  • Id,
  • name.
  • ParentId同一张表的外键。

如果人和其他人之间的关系是一个聚合,并且一个人可能对许多其他人负责person

Persons:

  • Id,
  • name.

usersresponsibilities

  • Id,
  • PersonId,
  • ResobonsiblePersonID.

稍后,在这两种情况下,在您的前端应用程序中,您都需要将这些表中的数据作为对象而不是行来处理。你应该从对象的角度来思考。

在您的应用程序中,您当前的类Person应映射到此表。

于 2012-11-18T11:54:54.787 回答
2

解决方案将在一定程度上取决于您的约束:

如果一个人可以有几个人负责

您需要的是人员之间的多对多关系(以及包含其他字段、ID 和姓名的人员表)

您将表示使用关联两个 ID(外键)的表对于任何给定的行,该表将关联:

  • 负责人身份证
  • 负责人的身份证

构建您的列表就像在此表中查询具有给定责任 ID 的行一样简单。

如果一个人只能有一个人负责

您需要一个外键到您的人员表中的同一个表(责任 ID)。

然后,构建您的列表就像在人员表中查询具有给定责任 ID 的行一样简单。

于 2012-11-18T11:54:18.600 回答
0

创建一个 id 和 responsableOfID 作为整数的表,而 responsableOfID 是另一个具有 id 和名称的表的外键

于 2012-11-18T11:58:09.350 回答