想用MongoDB来保存书籍,而书的格式刚好是树形结构的,该如何去设计数据库比较好呢? 在查找父节点和查找子节点方面都是比较快的。 或者大多数是通过父节点找到子节点, 而很少通过子节点找到父节点。
14 回复
这个问题前段时间遇到过,不过我用的都是关系型数据库,没有用mongo,因为我不会,, 而且我们的书籍一般是存入到数据库中,都不会再修正书籍的内容了,然后取的时候一般是按照章节来取数据, 当时想到的方法主要有两个: 1、主要是在每个章节记录父节点的值 这个写的时候要还原一棵树逻辑比较复杂,查询和插入的时候记录的数据也比较多 2、使用nested set model来存储, 这个感觉完全满足我的要求,可以快速的还原一棵树,而且插入的时候不用纠结于父节点到底是谁, 参考:http://en.wikipedia.org/wiki/Nested_set_model
ps:看mongodb的官方网站,存储树的格式,貌似跟表没多大差别么,求指导,表示对于mongo不懂 http://docs.mongodb.org/manual/applications/data-models-tree-structures/
@FuGardenia 那可以按照段落来存储,然后记录每个段落的具体内容和段落所在的章节和索引,记录笔记的话可以另外起一个表,然后记录段落的id和起始offset就可以了,评论也一样 以上是个人见解,如有错误,请指出,,