Sie können linkingObjects Funktion von Realm zu diesem Zweck wie folgt verwenden:
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
}
}
Dieser Ansatz spart Ihnen die Mühe, Ihre Mitarbeiter Objekts company Eigenschaft korrekt und es spart auch Sie Platz, da Unternehmen hier nicht gespeichert . Wenn Sie diesen Weg wählen Sie Ihre Mitarbeiter des Unternehmens Objekt leicht wie folgt zu erreichen: (dies nil, wenn Mitarbeiter nicht jedem Unternehmen zugeordnet ist)
let aCompany = someEmployee.company
Und Ihre Frage
zu beantworten, wenn nicht, wie würde ich in der Abfrage auf die Mitarbeiter verweisen, die zu einem bestimmten Unternehmen gehören.
Sie haben bereits eine Möglichkeit, dies zu tun, da Sie in der Liste eines Unternehmens des Mitarbeiters speichern employees
, so dass Sie nur diese Eigenschaft wie folgt verwenden können Mitarbeiter zu erhalten, die zu einem Unternehmen gehören:
let aCompanysEmployees = someCompany.employees
offtopic : Es sollte Name anstelle von Firmenname für ein gutes Design sein, weil Sie bereits in einem Firmenobjekt sind und jeder weiß, dass das Attribut zu der Firma gehört. – Xatenev
* Ist es notwendig? * Sie entscheiden. * Kannst du es später brauchen? * Wahrscheinlich. Es kann nützlich sein, wenn Sie über den Entwurf auf relationale Weise nachdenken; um zu wissen, welche gemeinsamen Attribute geteilt werden sollten. –
@Xatenev Der gleiche Name ist besser. Stellen Sie es sich als Fremdschlüssel vor. –