【问题标题】:Efficient data saving, like system (example)高效的数据保存,如系统(示例)
【发布时间】:2016-10-04 12:54:10
【问题描述】:

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

将有一个“论坛”,同学们可以在这里发布问题,其他人可以在这里给出答案/回复。

我们正在使用 ASP.NET Core 应用程序 (web api)。所以,情况是这样的:我们希望同学们能够喜欢问题、答案和回复。

我已经建立了一些模型,我们可以做的是为每个部分(问题、答案、回复)制作一个“喜欢”表。但我认为这有点低效。

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> 之类的方法,但不知道如何使用它。

希望有人能解决。

【问题讨论】:

  • 你的问题模型还需要一个答案集合和一个 cmets 集合,如果你想在答案上启用 cmets,这些也需要一个 cmets 集合。我假设您的问题类也有一个正文。您可以在 Like 中使用枚举 TypeOfPost,指定问题、答案或评论是否为 Like,然后存储相应帖子的 Id。
  • 您能写出您的解决方案的答案吗? @AsheraH

标签: asp.net database asp.net-core asp.net-core-mvc asp.net-core-1.0


【解决方案1】:

这些方面的内容应该可以帮助您入门。 采用您的问题、答案和评论类:

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
}

在你的 Like 类中使用这个枚举:

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

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 2010-12-29
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 2011-07-13
    • 1970-01-01
    相关资源
    最近更新 更多