c# - RavenDB 为日历应用程序建模

标签 c# nosql data-modeling ravendb modeling

我正在第一次尝试 Ravendb,并尝试为锻炼应用程序建立一个模型。 这是一个我不知道如何安排的类的简单示例。

User{
string:Name
string:Email
//+ 20 or so more properties

}

CalendarEntry{
DateTime:TimeStamp
decimal:Weight
decimal:Waist
List<Meal> Meals
List<WorkoutSession> WorkoutSessions
//+ more properties

}

成员(member)将更新他们的训练日历,包括体重、腰围、每日运动量、食物摄入量和卡路里等。因此日历条目列表每天都会增加。

所以问题是,用户对象应该包含日历条目列表还是应该将其用作自己的实体集合并引用用户 ID?

我主要关心的是 Ravendb 中的最大文档大小(有吗?),因为列表每天都会增长,并且如果日历条目是嵌套集合,则用户文档在一年左右后可能会变得太重.

如有任何建议,我们将不胜感激

//金

最佳答案

我不知道 Raven 中有任何文档大小限制,但您的第二种方法听起来仍然更好...日历条目对象本身的大小看起来相当大,因此它最终可能会进一步损害性能如果每个用户的日历条目集合变大。

但您真正需要问的问题是数据将如何消耗?您是否可能想要在数据库中查询所有日历条目,而不管用户是谁?或者也许在给定的时间段内?如果答案是肯定的,那么您最好将日历条目存储在它们自己的集合中,以便您可以优化它们的索引。

在 raven 中管理文档之间的“外键”相当容易,因此这应该不会太难完成。本页详细介绍了如何处理文档关系:http://ravendb.net/docs/client-api/querying/handling-document-relationships

关于c# - RavenDB 为日历应用程序建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13028960/

相关文章:

c# - 有没有比序列化 XML 更好的东西来在 C# 中存储可以在我自己的程序集中编译的简单数据库?

c# 在 IE 中托管用户控件

c# - 在 Ravendb 文档中查询子集合

data-modeling - MySQL 数据模型到 Cassandra 有帮助吗?

oop - 小说/书籍面向对象的设计方法

algorithm - 购物车和各种折扣。在数据库中存储折扣并将其应用于订单计算

c# - 隐式上下文相关运算符的想法。 (点)作为句法糖

c# - 比较画笔和颜色

json - 如何在Elasticsearch中查询嵌套结构

mongodb - 如何计算位于多个数组中的不同对象