高效的数据保存,如系统(示例)

Efficient data saving, like system (example)

我正在与几个 class 伙伴一起构建一个学校项目。我们 运行 遇到了一个(小)问题。

将有一个 'forum',class 队友可以 post 提问,其他人可以 answers/replies 提问。

我们正在使用 ASP.NET 核心应用程序(网络 api)。所以,情况是这样的:我们希望 class 朋友能够喜欢问题、答案和回复。

我已经建立了一些模型,我们可以做的是为每个部分(问题、答案、回复)制作一个 'like' table。但是我觉得这样有点低效。

public class Question
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Title { get; set; }
}

public class Answer
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Body { get; set; }
}

public class Comment
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Body { get; set; }
}

现在我的问题是,保存这些赞的最有效方法是什么?我已经建立了一个类似的模型,但我不确定什么是最好的。

public class Like
{
   public Guid Id { get; set; }
   public User User { get; set; }
}

我尝试过向问题、回答和评论模型添加 ICollection<Like> 之类的方法,但不知道如何使用它。

希望有人能解决。

按照这些思路应该可以帮助您入门。 采用您的问题、答案和评论 classes:

public class Question
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Title { get; set; }
    public string Body { get; set; }
    public List<Answer> Answers {get; set; }
    public List<Comment> Comments {get; set; }
}

public class Answer
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Body { get; set; }
    public List<Comment> Comments {get; set; }
}

public class Comment
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Body { get; set; }
}

然后用可能的帖子类型创建一个枚举:

public enum TypeOfPost
{
Question,
Answer,
Comment
}

在你的赞中使用这个枚举 class:

public class Like
{
   public Guid Id { get; set; }
   public User User { get; set; }
   public TypeOfPost PostType { get; set; }
   public Guid LikedPostId { get; set; }
}