2011-11-11 70 views
1

我需要快速檢查CoreData中是否有重複值。我正在做一些背景同步,偶爾還會有一些愚蠢的東西進入我的系統。快速檢查覈心數據中重複值的方法

我有一個ManufacturerID和項目ID,我不能有兩個重複的值,例如不良數據:

ManufacturerID ItemID 
35    IT001 
35    IT001 

所以我只是想知道,如果發生,可能得到這些名單ItemID的,那麼我需要一種方法來弄清楚如何擺脫困境,但這是一個好的開始。

我只是需要一個快速的方法,如果他們存在與否。

回答

0

在我的應用程序中,我有一個SynchManager,它使用NSoperation在後臺執行同步,並在持久sqlite存儲中存儲新記錄,但前提是不存儲該文件。 基本上我做的是:

  1. 執行爲獲取請求其在店裏我所說的檢索存儲ID的集合(在我的情況下,這些ID是代表的URL字符串)
  2. 插入之前,一個新的對象方法如「shouldImportObject:」,它基本上測試該url是否已經存儲在數據庫中。這是一個簡單的實現示例:

    for (id objectID in ids) { 
        if ([objectID isEqual:objectToImport.objectID]) { 
        return NO; 
        } 
    } 
    
    return YES; 
    
+0

問題,那就是我有可能50,000記錄經歷。從理論上講,第一次獲取數據時,我不檢查是否有重複項(這是我的問題),從那時起,我做了一個獲取請求來查看項目是否存在,但是對於初始數據導入來說太慢了,看起來有點兒瘋狂並會導致大量的磁盤io。 – Slee

+0

當然,如果數據庫是空的,我不使用測試! – daveoncode

+0

我想你只是爲我打開燈! DOH - 我可以檢查它是否爲空 - 我自己的LOL – Slee