我想爲瀏覽器寫一個筆記記錄應用程序。用戶擁有一個帳戶,並且可以創建文件夾,子文件夾,子文件夾等,以及放在該文件夾結構中的任何位置的註釋。如何有效地存儲和檢索數據庫中的樹形結構數據?
雖然(無論是在服務器上還是理想情況下在用戶的瀏覽器中緩存),但我很難想象一種有效的方式來存儲和檢索這些信息,並且Google的搜索信息讓我有點困惑。這真的是一個複雜的問題,因爲有些信息暗示,或者我錯過了什麼?
難道要做一個簡單的SELECT * WHERE user_id = ?
,發送給用戶,並讓客戶端代碼從完整的筆記和文件夾列表中構建樹?
只有一個NotesFolders表,並有一個ParentID字段,將文件夾鏈接到樹中上面的文件夾。如果ParentID爲空,則它是根文件夾。或者,也許可以使所有根文件夾從ID 1繼承。 – bushell
半結構化數據的存儲和檢索效率在很大程度上取決於您要執行的查詢/命令。你能更具體地瞭解你的預期工作量嗎? –
搜索「鄰接列表」和「遞歸查詢」。 –