Wann sollte ich "NOT NULL" in einer MySQL-Tabelle verwenden und gibt es irgendwelche Vorteile?

8

Ich habe die folgenden Schienen Migration:

%Vor%

Alle Felder, die "NOT NULL" sind, werden zuerst im Modell validiert, also frage ich mich, ob ich mir erlauben muss, allow_null in der Migration zu haben? Ich bin nicht sicher, welche Vorteile "NOT NULL" der Datenbank gibt, falls vorhanden.

    
Chris Gaunt 27.10.2008, 16:38
quelle

3 Antworten

11

Nicht viel, wenn Sie in Bezug auf Leistung oder Speichereffizienz meinen. Es empfiehlt sich jedoch, so viele Low-Level-Constraints in die Datenbankebene zu übertragen. Zum einen garantiert es, dass ein subtiler Fehler in Rails nicht zu einigen zufälligen NULL Daten in einem Nicht-Null-Feld führt. Wenn Sie jemals eine andere App für dieselbe Datenbank ausführen, ist es sehr hilfreich, die Einschränkungen an einem zentralen Ort für die Wartung zu haben und Doppelarbeit zu vermeiden.

    
Daniel Spiewak 27.10.2008, 16:41
quelle
3

NOT NULL ist eine weitere Sache, bei der der Computer Sie im Auge behält und Sie davon abhält, Fehler zu machen.

    
Andy Lester 27.10.2008 17:06
quelle
1

Dies wirkt sich nicht auf mySQL aus, aber Sie sollten auf zwei kürzlich behobene Migrationsprobleme achten (eines, wenn Sie keinen Standard angeben)

Ссылка

Ссылка

    
Gene T 27.10.2008 17:37
quelle