想了好多遍,还是想搞个类似 evernote 这种记事软件
1.树形菜单
2.按目录搜索内容
3.富文本和图片存储
4.跨平台,这个太艰难
甚至可以把网站也开发成这种形式,博客型网站主要还是记录为主,树形目录可以将个人的所有资料按类型一步步展开,整个知识体系都能清晰的分类出来,现在常规的博客只有一级目录,选择的时候太苍白了……当然缺点是可能目录的深度会很深
目录 1
-----目录 11
-----------目录 111
-----目录 12
-----------目录 122
目录 2
-----目录 21
-----目录 22
现在主要考虑 2 个问题,第一个就是搜索和点击目录的时候,需要能展示子目录的内容,也想过一个内容可以存多个分类中(可能有必要)
目前想到 2 个方式去实现
存储“目录 121 ”中的内容,分类的存储方式:
1.用字符型字段存储:目录 1 的 UUID+目录 11 的 UUID+目录 111 的 UUID
点击目录的时候,where category like '目录 1 的 UUID%' order desc date
这样就可以展示子目录的内容,而且可以支持一个内容处于多个分类中,对了还要做一下去重。
优点:数据库结构简单,数据看着很清晰,缺点,用 like 速度应该偏慢
2.用交换表的形式(应该是这个名词吧):
用 UUID 类型字段存储分类和内容的 UUID,每一级分类都存储一行,比如要存储“目录 121 ”中的内容,会是这样
增加第 1 行:目录 1 的 UUID+内容 UUID
增加第 2 行:目录 11 的 UUID+内容 UUID
增加第 3 行:目录 111 的 UUID+内容 UUID
如果它属于 2 个分类就再按这个方式增加就可以了
查询的时候,where category = '目录的 UUID'即可。
优点:查询速度应该挺快,缺点:数据库看起来会占很多空间,目录多了不知道会不会在性能上蓝瘦香菇。
按说这种需求应该很普遍,不知道大公司都是如何选择的,想学习下,其实如果只是个人使用,不管哪种应该都不会造成速度极慢,毕竟数据的量就在那摆着。
另外撘楼问下,应该有比较优秀的开源实现吧?(不过自己开发的好处是自由,思想的自由太重要了!!!缺点就是耗时费力,如果有好的开源,也是很好的,但是比较考虑得多的还是数据存储和同步的问题,毕竟个人搭建的话,环境是多样变化的)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.