我想为浏览器写一个笔记记录应用程序。用户拥有一个帐户,并且可以创建文件夹,子文件夹,子文件夹等,以及放在该文件夹结构中的任何位置的注释。如何有效地存储和检索数据库中的树形结构数据?
虽然(无论是在服务器上还是理想情况下在用户的浏览器中缓存),但我很难想象一种有效的方式来存储和检索这些信息,并且Google的搜索信息让我有点困惑。这真的是一个复杂的问题,因为有些信息暗示,或者我错过了什么?
难道要做一个简单的SELECT * WHERE user_id = ?
,发送给用户,并让客户端代码从完整的笔记和文件夹列表中构建树?
只有一个NotesFolders表,并有一个ParentID字段,将文件夹链接到树中上面的文件夹。如果ParentID为空,则它是根文件夹。或者,也许可以使所有根文件夹从ID 1继承。 – bushell
半结构化数据的存储和检索效率在很大程度上取决于您要执行的查询/命令。你能更具体地了解你的预期工作量吗? –
搜索“邻接列表”和“递归查询”。 –