有人可以帮我吗?我的项目中有两个类:User和Article。它看起来像这样:
public class User
{
public virtual int UserID { set; get; }
public virtual string Name { set; get; }
public virtual IList<Article> Articles { set; get; }
public User() { }
}
public class Article
{
public virtual int ArticleID { set; get; }
public virtual string Title { set; get; }
public virtual string Body { set; get; }
public virtual User User { set; get; }
public Article() { }
}
现在,我希望数据库中的表看起来像这样:
我使用XML映射。请帮帮我。
答案 0 :(得分:2)
您的数据库架构显示多对多关系,而实体则是多对一关系。 所以你应该决定你需要什么样的关系。有关映射的其他信息,请参阅here
答案 1 :(得分:1)
给定的ER图表明任何给定的文章可能有多个作者(用户)。在您的情况下,您仍然不需要该架构。
考虑到删除问题,如果您计划从数据库中删除任何用户行,您将最终得到多篇文章,其中一些用户ID的引用悬空,从而产生无用的用户信息。如果您只需要文章信息,只需创建与用户和文章的1对n关系。否则(如果您打算使用文章信息,即使用户被删除),我建议您保留一个已删除的标志,而不是删除该条目。
答案 2 :(得分:1)
正如Sly
正确声明您可以将UserId
移至Article
表格
如果用户被删除,请将UserId
设置为特殊用户,例如A System User
然后,此system user
可以拥有任何不再分配任何用户的文章,从而保持完整性。