想用MongoDB来保存书籍,该如何设计数据库比较好?
发布于 10 年前 作者 FuGardenia 5968 次浏览 最后一次编辑是 8 年前

想用MongoDB来保存书籍,而书的格式刚好是树形结构的,该如何去设计数据库比较好呢? 在查找父节点查找子节点方面都是比较快的。 或者大多数是通过父节点找到子节点, 而很少通过子节点找到父节点。

14 回复

并不感觉 mongo 在这方面有什么优势啊。为什么用 mongo 呢?

…不应该写静态TXT路由么233333。

就直接树形结构啊,一个doc一本书,再加一些冗余数据来优化查询

这个问题前段时间遇到过,不过我用的都是关系型数据库,没有用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/

官方给举了四种树的例子,看哪种合适你。 用起来总是有那么点不爽。

不过弱弱的说一下,关系数据库用起也好不到哪去。

@alsotang 因为每个章节或者段落需要给它加评论,而不仅仅是为了存储一本书

@MiguelValentine 因为想每个章节或者段落需要给它加评论,而不仅仅是为了存储一本书

@nihgwu 因为想每个章节或者段落需要给它加评论,而不仅仅是为了存储一本书,数据量大的话 用txt不好存储

@ravenwang 需要给每个章节或者段落需要给它加评论或者记录笔记,而不仅仅是为了存储一本书

@Msms-NJ 谢谢~~ 我在研究怎么存储比较好,因为我要为每个章节或者段落添加评论,还想随时给一个句子加锚点用来记录笔记,你讲的好专业,我先慢慢消化下

@FuGardenia 那可以按照段落来存储,然后记录每个段落的具体内容和段落所在的章节和索引,记录笔记的话可以另外起一个表,然后记录段落的id和起始offset就可以了,评论也一样 以上是个人见解,如有错误,请指出,,

回到顶部