相关疑难解决方法(0)

MongoDB数据库架构设计

我有一个拥有500万用户的网站(在sql server 2008上运行).我想现在包括用户及其朋友的活动流.在SQL Server上测试了一些东西后,很明显RDMS不是这种功能的好选择.它很慢(即使我严重地对我的数据进行了规范化).因此,在查看其他NoSQL解决方案后,我认为我可以使用MongoDB.我将关注基于活动流的activitystrea.ms json规范的数据结构 所以我的问题是:MongoDB中活动流的最佳模式设计是什么(有这么多用户,你几乎可以预测它会非常沉重在写入时,因此我选择MongoDB - 它具有很好的"写入"性能.我已经考虑了3种类型的结构,请告诉我这是否有意义或者我应该使用其他模式模式.

1 - 以这种模式将所有朋友/粉丝存储在每个活动中:

 

    {
     _id:'activ123',
     actor:{
            id:person1
            },
    verb:'follow',
    object:{
            objecttype:'person',
            id:'person2'
            },
    updatedon:Date(),
    consumers:[
            person3, person4, person5, person6, ... so on
            ]

    }

2 - 第二个设计:集合名称 - activity_stream_fanout


    {
    _id:'activ_fanout_123',
    personId:person3,
    activities:[
    {
     _id:'activ123',
     actor:{
            id:person1
            },
    verb:'follow',
    object:{
            objecttype:'person',
            id:'person2'
            },
    updatedon:Date(),
    }

    ],[
    //activity feed 2
    ]

    }


3 - 这种方法是将活动项目存储在一个集合中,将消费者存储在另一个集合中.在活动中,您可能有一个文档,如:


    { _id: "123",
      actor: { person: "UserABC" },
      verb: "follow",
      object: { person: "someone_else" }, …

stream mongodb android-activity

12
推荐指数
1
解决办法
5021
查看次数

标签 统计

android-activity ×1

mongodb ×1

stream ×1