【发布时间】:2019-09-24 06:39:28
【问题描述】:
假设我在 Realm 数据库中有两个模型和对应的表
public class Customer :Object {
dynamic var Id : String = ""
dynamic var NAME : String = ""
dynamic var Address : String = ""
override public class func primaryKey() -> String? {
return "Id"
}
}
public class Bills :Object {
dynamic var Id : String = ""
dynamic var Amount : String = ""
dynamic var CustomerId : String = ""
override public class func primaryKey() -> String? {
return "Id"
}
}
我在做什么:我正在通过以下方式轻松获取所有客户的列表 这个
realmObj.objects(Customer.self)
我想要什么:我想做以下事情。
我想获取所有客户列表,但我也希望该列表包含最常购买商品的此类客户。我的意思是我希望根据从我们商店购买更多时间的客户来进行列表排序。为此,我可以从 Bills 表中的客户 ID 中获取它。 但我不知道如何在 Realm 中做到这一点。
我知道可以通过子查询来完成,但我不知道如何在 Realm 中完成。请告诉我这里将使用什么查询/谓词以获得所需的结果。
【问题讨论】:
-
事实上,这两个对象之间没有正式的关系。我看到您将 CustomerId 存储在帐单上,但这只是一个字符串,而不是关系。您应该查看文档中的Relationships。其次,您的目标很模糊 - 购买更多时间的客户。这是什么意思 - 在指定时间内的实际购买次数?或者随着时间的推移购买的物品数量?为此,您需要存储时间戳,例如,您可以查询过去六个月内拥有超过 5 张账单的所有客户。
-
最初的想法是 Bills 表将保存从商店购买任何产品的客户的 ID。因此我们可以查询 Bills 表中客户重复 ID 的最多数量,以了解特定客户让我们称之为客户 34 购买更多东西让我们说他的 ID 驻留在该表中 44 次。客户 2 购买次数第二多,因此他的 id 在 Bills 表中出现 40 次
-
我已经阅读了这些关系,但不知道你将如何帮助我
-
我认为在您的 Customer 类中保存一个名为
totalBillsCount的变量会让您的生活更轻松 -
我没有得到你
标签: ios swift xcode realm realm-mobile-platform