gpt4 book ai didi

c# - 使用 C#/ASP.net MVC 建模 NoSQL 论坛应用程序

转载 作者:可可西里 更新时间:2023-11-01 09:21:13 24 4
gpt4 key购买 nike

我目前正在开发一个基于论坛(问题/答案)的应用程序。
使用 C# ASP.net MVC 和 MongoDB 进行数据存储。

我正在看模型。
我正在考虑像这样单独的类(class):(简化)

public class Question
{
public string ID { get; set; }

public string Title { get; set; }
public string Body { get; set; }
public List<string> Tags { get; set; }
public DateTime DateCreated { get; set; }

public string ForumID { get; set; }
}

回答

public class Answer
{
public string ID { get; set; }
public string QuestionID { get; set; }
public string Body { get; set; }
public DateTime DateCreated { get; set; }
}

我的问题是:
如何处理“回复”
我最好有两个独立的“实体”吗(如上面的模型所示)
或者我应该在我的问题模型中有一个答案列表吗?

一些要求是我需要能够显示答案的计数等...

将其存储在 NoSQL 数据库中,我知道我应该对事物进行非规范化处理,但是如何在不检索整个帖子的情况下插入答案?将 NoRM 与 MongoDB 结合使用是否可以进行此类操作?

最佳答案

通常在 MongoDB 中,您会将答案嵌入到问题中。 99% 的时间你会按问题查询,所以你最好同时得到答案。

Some requirements are that i'll need to be able to display a count of answer...

如果您要带回问题的答案,这真的很容易。您将拥有一个包含答案的数组/列表/集合。所以你只需捕获长度。

but how can I insert an answer, without retrieving the entire post

MongoDB 支持原子“$push”操作。这意味着您可以将一个项目添加到数组中,而无需实际从客户端加载文档。在 javascript shell 中,它看起来像这样:

db.questions.update( {_id : your_id}, { $push : { answers : your_answer_object } } );

所以 MongoDB 可以做到这一点。您必须检查 NoRM 驱动程序以确保它们确实允许这种类型的行为(如果它们不支持 $push,它们确实会遗漏一些东西)。

关于c# - 使用 C#/ASP.net MVC 建模 NoSQL 论坛应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4278605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com