表示SQL数据库中的列表

时间:2012-11-18 11:50:18

标签: c# sql database database-design

我正在使用SQL数据库在C#中进行应用程序。

我有一个模特:

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

我希望将其表示为一个表格。

哪些是表格的正确字段?

3 个答案:

答案 0 :(得分:3)

这取决于他将负责的人和其他人之间的关系。

如果是父母和子女关系,即 组合 ,您可以使用自我参考表。类似的东西:

Persons ,其中包含以下列:

  • Id
  • name
  • ParentId同一个表的外键。

如果此人与他人之间的关系是 聚合 ,则某人可能对其他许多person负责:

<强> Persons:

  • Id
  • name

<强> usersresponsibilities

  • Id
  • PersonId
  • ResobonsiblePersonID

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

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

答案 1 :(得分:1)

解决方案将取决于您的约束:

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

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

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

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

构建列表就像查询此表以获取具有给定负责ID的行一样简单。

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

您需要在Person表(Responsible ID)中使用同一个表的外键。

构建列表就像查询person表中具有给定负责ID的行一样简单。

答案 2 :(得分:0)

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