2

我第一次尝试 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

}

成员将更新他们的训练日历,包括体重、腰围、他们的日常锻炼、食物摄入量和卡路里等。所以日历条目的列表每天都会增长。

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

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

任何意见,将不胜感激

//金

4

1 回答 1

2

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

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

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

于 2012-10-23T12:55:35.583 回答