Core Data - Optionale Attribute und Leistung

8

Nach dem Core Data Programming Guide:

  

Sie können angeben, dass ein Attribut ist   optional - das heißt, es ist nicht erforderlich   einen Wert haben. Im Allgemeinen jedoch   Sie sind davon abgeraten   so-besonders für numerische Werte   (Normalerweise können Sie bessere Ergebnisse erzielen   Verwenden eines obligatorischen Attributs mit a   Standardwert - im Modell - von 0). Das   Grund dafür ist, dass SQL hat   spezielles Vergleichsverhalten für NULL   Das ist anders als bei Objective-C's nil. NULL   in einer Datenbank ist nicht das Gleiche wie 0,   und sucht nach 0 wird nicht übereinstimmen   Spalten mit NULL.

Ich habe immer numerische Werte nicht optional gemacht, aber nicht für Daten und Strings. Es ist praktisch in meinem Code, Logik auf Daten und / oder Strings als Null zu basieren.

Basierend auf den obigen Empfehlungen überlege ich, alles in meiner Datenbank nicht optional zu machen. Für Daten konnte ich den Modellstandard auf einen Wert von 0 und für Zeichenfolgen auf einen Modellstandard von nichts ("") setzen. Dann könnte ich in meinem Code Daten für [date timeIntervalSince1970]! = 0 und Zeichenfolgen für string.length! = 0 testen.

Die Frage ist, ob es für eine relativ kleine Datenbank wirklich wichtig ist, was die Kerndatenleistung betrifft? Und was ist der Nachteil, wenn das fragliche Attribut niemals direkt über ein Prädikat abgefragt wird?

    
thevoid 03.08.2010, 22:20
quelle

1 Antwort

10

Ich habe keine Leistungsprobleme bei kleinen bis mittelgroßen Datensätzen gesehen. Ich vermute, dass Sie damit in der Leistungsphase Ihrer Bewerbung konfrontiert werden.

Persönlich verwende ich die gleiche Logik, bei der Numerik optional ist, wenn sie sinnvoll ist, da sie den Code tatsächlich einfacher macht, was mir wiederum mehr Zeit gibt, später zu optimieren.

    
Marcus S. Zarra 04.08.2010, 00:54
quelle

Tags und Links