Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在SQL数据库中表示列表_C#_Sql_Database_Database Design - Fatal编程技术网

C# 在SQL数据库中表示列表

C# 在SQL数据库中表示列表,c#,sql,database,database-design,C#,Sql,Database,Database Design,我正在用C#和SQL数据库做一个应用程序 我有一个模型: Person() { string id;//unike key string name; List<string> responsableOf;//list of id } Person() { 字符串id;//unike键 字符串名; List responsableOf;//id列表 } 我想把它表示成一张表 哪些是表的正确字段?解决方案将稍微取决于您的约束: 如果一个人可以由几个人负责 您需要的是人员之

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

我有一个模型:

Person()
{
  string id;//unike key
  string name;
  List<string> responsableOf;//list of id
}
Person()
{
字符串id;//unike键
字符串名;
List responsableOf;//id列表
}
我想把它表示成一张表


哪些是表的正确字段?

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

如果一个人可以由几个人负责 您需要的是人员之间的多对多关系(以及包含其他字段、ID和姓名的人员表)

您可以表示,使用一个表关联任意给定行的两个ID(外键),该表将关联:

  • 负责人的身份证
  • 他负责的人的身份证
构建列表非常简单,只需查询此表中具有给定责任ID的行即可

如果一个人只能由一个人负责 您需要Person表中相同表的外键(负责ID)


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

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

如果是父子关系,即组合,则可以使用自参考表。比如:

人员
具有以下列:

  • Id
  • 名称
  • ParentId
    同一表的外键
如果该人与其他人之间的关系是一个集合,并且一个人可能对许多其他
负责:

人员:

  • Id
  • 名称
用户责任

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


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

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

您需要提供更多信息以获得更好的答案。您的SQL数据库是什么?你所说的“表中的哪些字段是正确的”是什么意思?这意味着责任人不再是个人,不是吗?是的,你只对第二种情况是正确的。现在修好了。谢谢