我正在設計一個簡單的項目基於待辦事項列表。這個想法是在項目下定義任務(沒有工作流 - 只需要「完成任務」或不需要)。即每個任務具有多個任務,並且該任務可以具有其他多個任務。如果該項目下的所有任務都完成,則可以說完成了一個項目。 ,我試圖用refrenceproeperty來創建hirarchy,但是找不到簡單的方法(不需要花30秒以上找到項目的所有孩子,並檢查它是否完成)。檢測項目是否完成。如何爲這樣的工作設計數據庫?還有,如果我需要複製項目以定義另一個項目,如何複製分層數據?谷歌應用程序引擎中的數據庫設計
3
A
回答
3
的應用程序的首要理念引擎數據存儲與其他nosql數據庫一樣,是爲了寫作而不是讀取。考慮到這一點,你可以像Adam建議的那樣使用父母關係,並在每個節點上保留一個「不完整的計數」,這個計數表明直接的孩子數量還沒有完成。當你標記節點完成時,減少其父節點的計數;如果這會導致它完成,請移至其父項,等等。通過這樣的結構,您可以立即顯示任務是否完成。
0
可能最好通過將任務實體的父設置爲其所屬的任務實體或項目實體來實現任務的層次結構。
我認爲找到一個項目的所有子項是否完整的技巧是使用ANCESTOR查詢。
如果你正在創建你的任務記錄,從而使他們的父母被設定爲它們所屬的任務或項目,你應該能夠編寫這樣的事:
all_done = db.Query().ancestor(project_entity).filter('complete = ', False).count()
if all_done > 0:
#Not all done
else:
#All done
相關問題
- 1. 谷歌應用程序引擎flex中的數據計算
- 2. 谷歌應用程序引擎的數據庫模型
- 3. 數據流計劃在谷歌應用程序引擎
- 4. 谷歌應用程序引擎數據庫值不增加
- 5. django谷歌應用程序引擎與關係數據庫
- 6. 如何查詢谷歌應用程序引擎數據庫
- 7. 谷歌應用程序引擎只作爲數據庫存儲
- 8. 下載谷歌應用程序引擎數據庫(Java項目)
- 9. 外部MySQL數據庫對上谷歌應用程序引擎
- 10. 谷歌應用程序引擎數據庫最後登錄
- 11. 谷歌應用程序引擎的Servlet設計
- 12. 設計處理異常 - 谷歌應用程序引擎
- 13. 在Google應用程序引擎中設計數據庫
- 14. 排序谷歌應用程序引擎
- 15. 谷歌應用程序引擎中的圖像exif數據
- 16. 谷歌應用程序引擎的Bigtable
- 17. JPA的谷歌應用程序引擎
- 18. WebTest的谷歌應用程序引擎
- 19. 谷歌應用程序引擎 - Servlet的:
- 20. 谷歌應用程序引擎的phpBB
- 21. 谷歌應用程序引擎的TaskOptions
- 22. Django的谷歌應用程序引擎
- 23. 從谷歌應用引擎遷移到谷歌計算引擎
- 24. 在谷歌應用程序引擎中使用數據存儲
- 25. 谷歌應用程序引擎應用程序的索引
- 26. 復位計數(谷歌應用程序引擎)
- 27. 谷歌應用程序引擎投票計數
- 28. 谷歌應用程序引擎如何從datestore計數SUM?
- 29. pycurl與谷歌應用程序引擎
- 30. 報告谷歌應用程序引擎
要了解更多關於「在寫作而不是在讀」的理念,您可以在Google I/O上觀看Bret Saltkin的視頻。這兩個視頻的鏈接嵌入在我詳細的博客文章中。 http://akhilspassion.blogspot.in/2012/12/database-design-for-google-app-engine.html – nanospeck 2013-12-26 06:24:56