2016-07-14 102 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做到这一点,但你也不需要摆在首位。您只需一个模式类即可解决此问题,并可正确定义指示状态的查询/标志。

相关问题