Ich baue eine einfache App in Swift mit Core Data und versuche zu entscheiden, ob ich eine eindeutige ID in meinen Entitäten speichern soll. In meiner Forschung habe ich Beispiele dafür gefunden und Beispiele, die das nicht tun, aber ich habe keine klare Begründung für diese Art von Entscheidung gefunden.Welche Fragen sollte ich mir stellen, um festzustellen, ob ich einen "Primärschlüssel" für meine Core Data App benötige?
Bitte beachten Sie: - ich aus einem RDBMS Hintergrund kommen und ich weiß, dass Core Data ein Objektdiagramm ist, keine relationale db - ich weiß, dass Core Data ein NSManagedObjectID
schafft, aber wie ich, wenn dieser Wille bestimme werden genug
ich sehe Themen wie this (ab 7 Jahren, übrigens), die diese Optionen legt:
- Sie mit - [NSManagedObject objectID]. Beachten Sie, dass diese ID nur vorübergehend, bis entweder das Objekt zum ersten Mal gespeichert wird, oder Sie rufen
- [NSManagedObjectContext obtainPermanentIDsForObjects: Fehler:] Verwenden Sie die CFUUID Familie von Funktionen eine UUID für jedes Objekt in Ihrer -awakeFromInsert Methode zur Erzeugung
- erstellen sie Ihre eigenen Primärschlüssel-ähnliches System, das eine ganze Zahl in Ihrem Modell speichert und erhöht es mit der Schaffung jedes Objekt
aber ich habe nicht in der Lage gewesen, viele Informationen zu finden, über die Optionen, für die angemessen sind Situationen.
Welche Fragen sollte ich mir stellen, um herauszufinden, ob der eindeutige Identifier von Core Data (NSManagedObjectID) alles ist, was ich brauche oder ob ich darüber hinausgehen und einen eigenen in den Mix aufnehmen soll.
Ich bin kein Core Data Coder (nur mit ihm), aber ich habe immer gedacht, es gibt zwei mögliche "Quellen" für das Modell - mySQL oder eine XML-Datei. Da ich selbst in einer vergangenen Lebensphase eine MSSQL-Person war, würde ich meinen, dass jedes DB-Design, das Ihnen gefällt, für eine Antwort ausreichen würde. In der Tat gibt es Argumente, die ich gelesen habe, dass CD manchmal eine unnötige Schicht ist und die Verwendung eines direkten mySQL-Designs die Dinge rationalisiert. (Diese Argumente behaupten manchmal, dass die größte Stärke der CD die Persistenz ist.) – dfd