冒着被重複標記的風險,這裏就出現了。Firebase數據建模指南
我有物品和標籤。項目可以有多個標籤,每個標籤可以是另一個標籤的子標籤。
我想列出標籤作爲一棵樹,並在每個標籤內的項目。
實質上,標籤是項目的文件夾,除了項目可以位於多個位置。
這是正確的方法嗎?
/items/
i123 : {
Label : "i am an item",
Tags : { tagid: t234}
}
/tags/
t234 : {
Label : "i am a Tag",
Parent: {tagid: t567}
}
我是個有點不確定,我做這個權利。我確實讀過了當然在firebase上的傷心文檔和教程,我也看過其他類似的問題。
我被困在RDBMS-思想中,似乎無法溝通nosql的概念,這就是爲什麼我希望在這裏得到一些指導這裏的用例。
謝謝。
根據評論者的請求,更多關於用例的信息。
我想顯示的標籤一棵樹,這樣
I am tag One
I am second tag
this is a child tag
here is a child's child tag
another child tag
I am a root level tag again
// etc... you get the idea
也有項目,項目可以在多個標籤。這裏的顯示與文件瀏覽器完全相同,真的。除此之外,項目可以位於多個位置,即它們可以具有多個關聯的標籤。
像這個例子中,在item 334
坐落在多個地方:
tag 1
item 209
tag 2
tag 21
item 11
item 334
tag 3
item 334
item 586
現在,我想我可以只保存在一個JSON對象了整個事情,並根據需要進行更新,但我有興趣可以通過標籤以及物品標籤進行搜索。因此,在我微弱的新手頭腦中,我想我應該可以擁有一個可以遍歷的URL /tags/
以獲得與標籤匹配的項目。同上/items/
所以我可以在標籤上做一個關鍵字匹配。
SO上的其他答案描述了爲事物創建索引的方法,這就是爲什麼我將標記引用存儲在項目對象中的原因。我正在努力解決這個問題。
我越想越想,我更傾向於將所有東西都存儲在一個大的嵌套對象中,但我認爲這應該不是一個好主意。而且,如果我這樣做了,我特別不喜歡讓物品多次存儲的想法。
生活RDB的世界是比較容易的,因爲我知道我在做什麼:P
建模數據的正確方法取決於應用程序如何使用該數據。我們無法爲您解答,儘管如果您有這個問題,我們可以爲您提供具體的查詢服務。除此之外,我建議閱讀本文[NoSQL數據建模](https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/)。 –
感謝您的鏈接。我認爲我在描述如何使用數據時非常清楚 – tim