我有一个示例数据库如下:
class Company:Object {
dynamic var companyName = ""
let employees = List<Employee>()
}
class Employee:Object {
dynamic var companyName = "" // Is this required?
dynamic var name = ""
dynamic var age = ""
}
类companyName
中的Employee
属性是否必要?如果不是,我将如何在查询中引用属于特定公司的员工。
答案 0 :(得分:1)
您可以使用Realm的linkedObjects功能,如下所示:
class Company:Object {
dynamic var companyName = ""
let employees = List<Employee>()
}
class Employee:Object {
dynamic var name = ""
dynamic var age = ""
var company: Company? {
return linkingObjects(Company.self, forProperty: "employees").first
}
}
这种方法可以节省您保持Employee对象的companyName属性准确的工作量,并且还可以节省您的空间,因为此处的公司未存储。如果您选择此路径,您可以轻松地获得Employee的公司对象:(如果Employee未与任何公司关联,则返回nil)
let aCompany = someEmployee.company
并回答你的问题
如果不是,我将如何在查询中引用属于特定公司的员工。
由于您将公司的员工存储在列表employees
中,因此您已经有办法实现此目的,因此您可以像这样使用该属性来获取属于公司的员工:
let aCompanysEmployees = someCompany.employees