2015-06-14 30 views
0

我在使用Parse的應用程序中存在邏輯問題,關於選擇保存流量的路徑,如果有人已經遇到類似問題,我將非常感謝幫助。此外,你可以最終幫助面臨同樣的問題在iOS解析應用程序中保存流量的最佳方法

我有一個社會的應用程序,其中有一個與對象的進給其他開發人員,用戶可以書籤(「最愛」),這些對象

我研究瞭解析文檔並得出結論,在指針,關係和數組中,存儲最喜歡的最佳方式是存儲在用戶類中的objectId數組。每次用戶將對象加入書籤時,此對象的ObjectID都存儲在屬於該用戶的對象ID的數組中。之所以選擇是:

  1. 這是很容易創建書籤的觀點,並將其展示給用戶,因爲我只需要搜索用戶的ObjectID的陣列和尋找那些存在於類對象

  2. 僅保存的objectID而不是整個對象,我會節省流量和我保持應用和流量乾淨

但我的邏輯問題如下。如果user1已經創建了一個對象,並且user2爲其添加了書籤,然後user1決定刪除該對象,那麼我必須在每個用戶的每個最喜歡的數組中搜索此已刪除對象的objectID!

所以我的問題是,什麼是我的應用程序的流量更便宜?用戶書籤時存儲整個對象,當用戶刪除對象時自動刪除?或者只是存儲ObjectID,並在刪除該對象時爲每個用戶在每個數組上執行搜索?

+0

我從來沒有這樣做,但我已經研究瞭如何減少進出雲的流量。我相信實施雲代碼(通過Parse)是您將流量保持在最低水平的解決方案。如果您不想這樣做,我只會提出一個視圖,指出user1已刪除該對象,並根據user2的請求查看其書籤對象。希望這是有道理的,或以任何方式幫助。 – justColbs

+0

將對象引用存儲在用戶中,並使用'afterDelete'雲代碼函數。 – Paulw11

+1

@justColbs,這是一個好主意。我仍然不熟悉Cloud Code的使用,所以我沒有認真考慮這個想法,但我認爲這應該是完成這個 –

回答

2

您可以爲您的提要對象創建Parse類。之後,創建一個數組列,以存儲將您的Feed項目添加到偏好的用戶的objectIds。當你想找到的所有對象的特定用戶的書籤這樣做

PFQuery *query = [PFQuery queryWithClassName:@"feedObjects"]; 
[query whereKey:@"favoritesArray" equalTo:@"YOUR USER OBJECT ID"]; 
[query findObjectsInBackground]; 

要刪除的對象根本就

PFObject *feedItem = [PFQuery getObjectOfClass:@"feedObjects" objectId:@"ITEM TO REMOVE OBJECTID"]; 
[feedItem deleteInBackground]; 

希望幫助:)

+0

雖然這將起作用,但它並不是減少流量的最佳方式,因爲可以在查詢後發佈數據,然後通過網絡進行多次刪除。雲代碼'afterDelete'函數是一種更好的方法 – Paulw11

+0

這種方式與我提出的方式相反,但實際上也起作用。存儲每個對象上數組中添加書籤的用戶的ID,而不是每個用戶的數組中的對象ID。正如我所解釋的,我的問題不是如何做到這一點,但是最簡單的方法是什麼,而且正如@ Paulw11所說,使用Cloud Code實際上是解決這個問題的最佳方法。不幸的是,我還不熟悉雲代碼,但當我有更多時間時我會嘗試 –

+0

由於feedObjects只包含一個具有所需id的對象,查詢將只執行一次刪除操作。 –

相關問題