Вы можете использовать linkingObjects особенность Realm для этой цели, как это:
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
}
}
Такой подход позволяет сэкономить усилия, чтобы сохранить свойство COMPANYNAME вашего объекта сотрудника точной, и это также экономит пространство, поскольку компания здесь не хранится , Если вы выбираете этот путь, вы можете получить объект компании ваших сотрудников легко, как это: (это возвращает ноль, если работник не связан с какими-либо компаниями)
let aCompany = someEmployee.company
И ответить на ваш вопрос
Если не так, как я бы ссылался на сотрудников, принадлежащих конкретной компании в запросе.
у вас уже есть способ сделать это, так как хранить служащему компании в ее списке employees
, так что вы можете использовать это свойство, как это, чтобы получить сотрудников, которые принадлежат компании:
let aCompanysEmployees = someCompany.employees
оффтоп : Это должно быть имя вместо companyName для хорошего дизайна, потому что вы уже находитесь внутри объекта компании, и все знают, что этот атрибут принадлежит компании. – Xatenev
* Это необходимо? * Вы решаете. * Может понадобиться это позже? * Вероятно. Это может быть полезно, если вы подумали о дизайне реляционным способом; чтобы узнать, какие общие атрибуты должны быть разделены. –
@ Xatenev С таким же именем лучше. Подумайте об этом как о внешнем ключе. –