如何给一个博客程序设计mongodb数据库?

0
博客功能:文章的CRUD,评论的CRUD。文章中可以包涵附件。
文章具有分类和标签属性,而且这2个属性要用来统计,用户管理等。
假如用mongodb,是要还是按照mysql那样分表么(文章,评论,附件,分类..各一个表)?如果按collection对应对象这样设计怎么样(评论,标签,所属分类都是文章的属性)。。
已邀请:
2

Bob - 同程旅游大数据+BI 架构师 2015-11-10 回答

mongodb是自动分片,可以不需要参考mysql的分表。
mongodb的文档大小是16m,这个在存储你的文章或附件时需要考虑下。
最简单的内嵌结构:
{
    CRUD:1,
    文章名称:'',
    文章评论列表:[{
        {CRUD:1,评论者:'',评论内容:''},
        {CRUD:2,评论者:'',评论内容:''}
    }]
}
但是需要注意的是:如果评论可作为一个单独的访问对象,那就建议不要用内嵌,应该采用数据引用:
{
    CRUD:1,
    文章名称:'',
    文章评论列表:[
        ObjectID('评论对象A'),
        ObjectID('评论对象B')
    ]
}
 
仅仅是个人想法,未在mongodb上创建。如有误,请指正。
1

牟瑞 - 大数据 Hadoop 讲师 Hadoop入门课程地址:http://www.hellobi.com/course/39 有架构师,技术总监,CTO的职位请联系我! 2015-11-10 回答

这要看你的博客的规模,如果规模很小,那mongodb的一个collection就可以。既然使用了nosql,设计方式肯定与mysql是有区别的。
评论,标签,所属分类等都是bsondocument的sub document就可以。附件只是保存一个附件的路径就可以。
数据规模比较大的话,可以考虑集群,sharding等等。
特别要注意:mongodb对于sub document的某一列来排序需要自己写排序处理,这个比较头疼。我没有找到好的办法。。有知道的可以聊聊

要回复问题请先登录注册