Db的結構的缺失:刪除用戶帳戶觸發另一節點
--followers
-followedUser1
-user1
-followedUser2
-user1
-user2
--users
-user1
-followed
-followedUser1
-followedUser2
-user2(followedUser1)
-followed
-followedUser2
-user3(followedUser2)
每次用戶如下(的onCreate)& unfollows(onDelete)下的追隨者/ {followedUser}/{followerUser}路徑,它觸發功能,其增加或並且從追隨者分配或分離職位。它通過扇出方法工作,並沒有問題。現在,更糟糕的部分是當一些用戶完全刪除賬戶並將他的追隨者從他自己中刪除(因爲他的賬戶將是一個幽靈),我已經設置觸發器onDelete來指示它什麼時候會發生,然後遍歷該用戶的(ieuser3 )的追隨者刪除自己從相應的追隨者以及他的帳戶,它看起來像這樣,那麼:
--followers
-followedUser1
-user1
-followedUser2
-user1
-user2
--users
-user1
-followed
-followedUser1
-user2(followedUser1)
現在,問題的一部分 - 當承諾的回報,我想也刪除整個跟隨/ followedUser2(因爲它是一個鬼了)路徑,但...有一個觸發器,不幸的是爲(onDelete)下的每個追隨者執行。那麼,是否有機會刪除上面的路徑(levelup)刪除觸發器而不觸發子節點本身?或任何其他的辦法將是巨大的,感謝
編輯:不要誤會我的意思,它會工作,但如果followedUser下追隨者的數量將是「很多」服務器將100後死去......觸發
此外,作爲參考,'_'是lodash模塊的常用變量名稱。這是一個非常棒的工具,可以幫助您編寫功能代碼來執行列表推導。這種編碼方式可以讓您編寫更多精簡的代碼,無需擔心逐個錯誤或邊界情況下的零個,一個和多個列表。 –
謝謝,但這是我已經得到的。我想我可能不清楚我的問題。我的情況是,用戶有100000個追隨者,他想要刪除他的賬戶,現在我的計數和附加/分離郵件功能將激活10萬次,所以如果我將所有與該觸發器相關的東西都收集起來,並把它放在多位置更新像你必須使前一個觸發器停用,但這是我的問題:如何過濾,我正在刪除用戶帳戶與他的追隨者+數他們等,並防止(以某種方式)取消關注(onDelete)觸發器火 –
我明白了。這是一個不同於我以爲的問題。在100K粉絲中,你會遇到另一個問題。數據庫在每次寫入1K事件時具有硬限制;如果超過這個數字,則不會觸發事件。您可以批量寫入或濫用此操作以更新計數(但要小心跨100K節點的事務幾乎肯定會失敗)。老實說,100K更新似乎有點奇怪的邊緣情況下,你花時間優化(只要它工作)。你真的期望用戶能夠獲得如此的知名度並經常離開嗎? –