我有章,分章,節的一本書的結構,款,第二十和subarticles的數目不詳,分subarticles,分次subarticles等SQLite的結構建議
什麼是結構的最佳方式? 一個表與子 - 父母關係,多個表?
謝謝。
我有章,分章,節的一本書的結構,款,第二十和subarticles的數目不詳,分subarticles,分次subarticles等SQLite的結構建議
什麼是結構的最佳方式? 一個表與子 - 父母關係,多個表?
謝謝。
在關係數據庫中有幾種方法可以保存樹結構。最常用的是使用父指針和nested sets。
第一個數據結構非常簡單,即指向每個對象上相應父元素的指針,因此易於實現。缺點是不容易對它進行一些查詢,因爲樹不能完全遍歷。您需要每層的自連接。
嵌套集更容易查詢(當你已經理解它是如何工作的)但更難更新。許多寫操作需要對樹中的其他對象進行附加更新,這可能會使其更難以過渡保存。
第三個變體是materialized path,我個人認爲這是前兩者之間的一個很好的折衷。這就是說,如果你想存儲任意大小的樹(例如,對於節,子節,子節,...),你應該使用提到的樹實現之一。如果您的最大深度非常有限(例如最多3層),則可以創建明確的數據結構。但因爲事情總是比最初複雜得多,所以我建議你使用真正的樹實現。
要確定是否有單獨的表格或涉及到一個大表格,您應該仔細查看每個項目 - 章節,子章節等 - 並確定它們是否與其他屬性具有不同的屬性。一章是否帶有與子章不同的內容?
如果是這樣,那麼你正在查看章節,子章節,章節,子章節,文章的單獨表格。文章對我來說依然感覺與你的次級子等分等。
如果不是,那麼也許它是一張有父母/小孩的大桌子,但看起來你可能正在談論'名字'表示層次的深度,這又讓我再次偏向單獨的表格。
另請考慮您將如何查詢以及您將要搜索的內容。
謝謝,我稍後會看看鏈接。我確實需要遍歷查詢樹。 – Francisc