这更像是一个设计模式/文档设计问题,而不是技术问题......
我想在我的网站上显示一个活动提要,其中将列出用户在我的网站上所做的所有最新事件......以下是我想显示的一些活动:
- 上传了新媒体(Bob 上传了新曲目)
- 对个人资料的评论(保罗对鲍勃的个人资料发表了评论)
- 媒体评论(史蒂夫评论了保罗的曲目“我的曲目名称”)
- 状态更新(史蒂夫可以写任何他想要的状态更新)
每个活动都需要有自己的数据集,例如新媒体上传活动我想包括有关媒体的详细信息,例如图像、标题、描述等)。
此活动将主要用作全局提要,因此对所有用户都相同,尽管我需要用户选择仅显示他们关注的用户的提要项目(如 twitter)。
我想我有两个选择:
1) 使用索引提取所有 Ad-Hoc 数据,以便信息始终是最新的,即使用户更改了他的媒体标题名称......我不确定这将如何扩展?
2) 有一个 ActivityFeed 文档,其中包含一个子文档,例如 NewMediaUploadActivity(如下所示)。
ActivityFeed
- DateTime
- AccountId
- ActivityType
- Activity (this is a polymorphic object)
NewMediaUploadActivity : Activity
- MediaTitle
- MediaDescription
- GenreName
StatusUpdateActivity : Activity
- StatusText
ProfileCommentActivity : Activity
- CommentText
- ProfileAccountId
- ProfileUsername
ETC...
如果有人有任何经验,或者对在 RavenDB 中执行此操作的最佳方式有任何意见,我将不胜感激,我使用 SQL Server 构建的实时网站目前可以使用稍微修改的选项 2 来满足我的需要。
保罗