我很难解决问题: 这些是我在解决方案中的对象
研究者 和a 书
调查员写了一本书。
他们都有一个类,我想要实现的是功能:(2件事)
有超过1名调查员写过他的书。 (1本书 - >多一位调查员) 和调查员写了一本书。
我有两个表用于Investigator,一个用于Book
我认为我需要添加的是:
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帮助我理解它。
答案 0 :(得分:2)
通常在多对多关系中,您将拥有三个数据库表。在这种情况下,您将拥有一个调查员表,一个书籍表和一个包含调查人员和书籍的表格,其中包含调查员ID列和书籍ID列,主键是两者的组合。
然而,我看到有人用两个表做了这个表,其中的字段包含用逗号分隔的ID列表 - 所以书的表格会有一个调查员列,例如'2,5,6'和调查人员会有一本书专栏。
对于第二个版本,您必须以编程方式处理逗号,如果有人写了很多书,那么它可能会变得非常混乱,所以我不推荐它。第一种选择是标准做法是有原因的。