2008-10-14 4 views
10

Ich möchte das Jahr nur in einem meiner Modelle speichern. Im Moment habe ich nur ein Datenbankfeld namens Jahr des Typ-Datums, aber es scheint ein ganzes Datum (JJJJ-MM-TT) und nicht nur ein Jahr zu benötigen.So speichern Sie das Jahr in der Rails App

Was ist der beste Weg, dies zu speichern? In einem Datumsfeld, aber mit einer Möglichkeit, es nur zu bekommen, um das Datumsbit zu speichern (in diesem Fall, wie?) Oder in einem int-Feld oder einem string-Feld oder was? In gewisser Weise fühlt sich die Verwendung eines int-Feldes falsch an, aber es könnte am einfachsten sein.

Antwort

7

Es hängt von dem Bereich der Daten ab, die möglich sind. Wenn Ihre Daten von BC in die ferne Zukunft gehen (negativ bis mehr als 4 Ziffern), wäre es am einfachsten, eine ganze Zahl zu speichern (nur aus Gründen der Sortierung). Dies gilt auch, wenn Sie Berechnungen durchführen oder Daten vergleichen möchten.

Sonst würde ich wahrscheinlich mit einer Zeichenfolge gehen.

Verwenden Sie ein Datumsfeld, verwenden Sie den 1. Januar und extrahieren Sie den Jahrteil, wenn Sie anzeigen.

4

Ich würde von einem willkürlich gewählten Datum in einem Datumsfeld aufgrund der Wartbarkeit abraten. Sie werden wissen, dass Sie dies willkürlich gewählt haben, aber die nachfolgenden Betreuer Ihrer App?

Ich würde mit einem int gehen, weil Sie auf diese Weise nichts speichern, was Sie speichern möchten und es kann nicht viel Verwirrung über die Bedeutung davon sein.