Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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# 一般规划|解决规划问题的难度_C#_Database - Fatal编程技术网

C# 一般规划|解决规划问题的难度

C# 一般规划|解决规划问题的难度,c#,database,C#,Database,我很难解决一个问题: 这些就是我在解决方案中的目标 调查员 和 书 调查员写了一本书 他们都有一个类,我想实现的是功能:(2件事) 这本书的作者不止一个。(1本书->多个研究者) 研究人员写了不止一本书 数据库 我有两张桌子,一张给调查员,一张给书 我想我需要补充的是: public class Investigator{ ... public int[] Books { get; set; } //the books that the investigator wrote } public

我很难解决一个问题: 这些就是我在解决方案中的目标

调查员 和 书

调查员写了一本书

他们都有一个类,我想实现的是功能:(2件事)

这本书的作者不止一个。(1本书->多个研究者) 研究人员写了不止一本书

数据库 我有两张桌子,一张给调查员,一张给书

我想我需要补充的是:

public class Investigator{
...
public int[] Books { get; set; } //the books that the investigator wrote
}

public class Book{
...
public int[] investigators { get; set; } //the investigators that wrote the book
}
但是我不知道该怎么做,在数据库中添加一个包含多个值的列?(这是不可能做到的)那么还有什么选择呢


读完这里的答案
请帮助我理解它。

通常在多对多关系中,您将有三个数据库表。在本例中,您将有一个供调查者使用的表、一个供书籍使用的表、一个供调查者使用的表、一个供调查者ID使用的列和一个供书籍ID使用的列的表,主键是这两者的组合

然而,我见过一些人用两个表来完成这项工作,他们的字段用逗号分隔ID列表,因此图书表中的调查者列将有一个“2,5,6”,调查者列将有一个“图书”列


对于第二个版本,您必须以编程方式处理逗号,如果有人写了很多书,它可能会变得非常混乱,因此我不推荐它。第一种选择是标准做法是有原因的。

关系,注意连接表部分。一定要使用前一种解决方案。后者只会引起混乱。同意尤瓦尔的观点。不要做逗号分隔的事情。这是一个糟糕的DB设计。用第一个。你能发布一个例子的链接吗?@Alpar,no:)我已经编辑了我的问题,并发布了一段视频,对我有所帮助。谢谢