我在解决问题时遇到困难: 这些是我的解决方案中的对象
Investigator and a Book
调查员写一本书。
它们都有一个类,我想要实现的是该功能:(2件事)
有超过 1 位研究者写过他的书。 (一本书 -> 不止一名研究者) 还有写了不止一本书的调查员。
数据库
我有两张 table ,一张用于调查员,一张用于书籍
我认为我需要添加的是:
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
}
但是后来我不知道该怎么办,在数据库中添加一列将包含多个值? (这是不可能的)那么还有什么选择呢?
阅读完此处的答案后 This video帮助我理解它。
最佳答案
通常,在多对多关系中,您将拥有三个数据库表。在这种情况下,您将有一个用于调查员的表、一个用于书籍的表和一个包含调查员和书籍的表,其中包含调查员 ID 列和书籍 ID 列,主键是两者的组合。
但是,我见过有人用两个表来完成此操作,其中的字段包含用逗号分隔的 ID 列表 - 因此书籍表将有一个调查员列,例如“2,5,6”和调查人员将有一个图书专栏。
使用第二个版本,您必须以编程方式处理逗号,如果有人写了很多书,它可能会变得非常困惑,所以我不推荐它。第一个选项成为标准做法是有原因的。
关于c# - 通用程序化|解决程序问题的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24840347/