2016-07-14 52 views
0

對於SQL-based系統來說這很容易,但是,如何在Android上使用Realm來實現呢?我真的必須迭代兩個表:如何比較具有相同結構的兩個表並使用Realm查找不匹配的記錄?

foreach(TABLE-1) 
    foreach(TABLE-2) 
     if(TABLE-1.item == TABLE-2.item) ... 
     else ... 

爲什麼我需要它?我用ID分析待處理文章的列表,並得到說1, 2, 3。我將它們存儲在TABLE-1中,其狀態爲PENDING。過了一段時間,我再次解析待處理文章的列表,這一次我得到了2, 3, 4。所以,我必須去通過新獲取的文章和檢查:

  • 這已經是TABLE-1(所以我更新與新下載內容的2, 3內容)
  • 其不在TABLE-1(所以我加4TABLE-1與國家PENDING,因爲它是新的)
  • 這是在TABLE-1但未被取了(所以我動議文章1聲明FINISHED因爲它不是從待處理列表獲取結果)。

所以我的想法是存儲在TABLE-2這些新解析文章2, 3, 4,只是用TABLE-1進行比較。

+0

請問爲什麼你需要那個? – beeender

+0

是的,我更新了這個問題來解釋我想達到的目標。 –

+1

你可以在'Article'中設置一些標誌,比如'pending'。所以你可以在解析時設置/清除標誌,這是你唯一需要做的迭代。另外,也許你可以在對象中有一個Date對象(如Date lastUpdated)。通過結合不同的'RealmQuery'條件,我認爲你可以實現你想要的。 – beeender

回答

0

是的,你必須,Realm不支持這樣的「Schema」比較! 領域是一個移動數據庫,沒有必要有2架構相同的架構!

+0

「有沒有必要有2架構相同的結構」你能說得更清楚,因爲我沒有得到這部分答案,謝謝。 –

+0

你沒有電腦,你有電話,移動編程的原則之一是保持應用程序的亮度,所以,爲什麼你需要2個相同結構的模式?在Realm中,這意味着你有兩個具有相同結構的類(params),並且這沒有意義!只需將每個條目存儲在一個模式中! –

+0

我更新了問題以解釋我想實現的目標。 –

1

你不能用Realm做到這一點,但你也不需要擺在首位。您只需一個模式類即可解決此問題,並可正確定義指示狀態的查詢/標誌。

相關問題