Frage

Ich habe folgende Schienen Migration:

create_table :articles do |t|
  t.integer :user_id, :allow_null => false
  t.integer :genre_id, :allow_null => false
  t.string :url, :limit => 255, :allow_null => false
  t.string :title, :limit => 60, :allow_null => false
  t.text :summary, :limit => 350, :allow_null => false
  t.integer :votes_count, :default => 0
  t.datetime :published_at, :default => nil
  t.timestamps
end

Alle Felder, die „NOT NULL“ sind in dem Modell sind zunächst validiert, so frage ich mich, ob ich allow_null mit der Migration kümmern müssen? Ich bin mir nicht sicher, was „NOT NULL“ Vorteile gibt die Datenbank, falls vorhanden.

War es hilfreich?

Lösung

Nicht viel, wenn Sie in Bezug auf Leistung oder Speichereffizienz bedeuten. Aber es ist nur eine gute Praxis, wie viele Ihrer Low-Level-Beschränkungen in der Datenbank-Ebene zu schieben. Zum einen garantiert es, dass ein subtiler Fehler in Rails wird nicht auf einige zufällig NULL Daten in einem nicht-Null-Feld führen. Ebenso, wenn Sie jemals eine andere App gegen die gleiche Datenbank ausführen, wird es sehr hilfreich sein, um die Zwänge an einem zentralen Ort für die Wartung zu haben und Doppelarbeit zu vermeiden.

Andere Tipps

NOT NULL ist eine Sache, wo der Computer ein Auge auf dich halten und verhindern, dass Sie Fehler zu machen.

Dies gilt nicht seemt o beeinflussen mySQL, aber Sie sollten von zwei vor kurzem feste Migrationsfragen bewusst sein (ein, wenn Sie standardmäßig nicht angeben)

http://blog.codefront.net/2008/05/04/living-on-the-edge-of-rails-19-change_table-for-migrations-and-more/

http: // antoniocangiano.com/2008/07/14/a-close-look-at-three-rails-21-bugs/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top