Typy danych Rails 3?

158

Gdzie mogę znaleźć listę typów danych, których można używać w rails 3? (takie jak tekst, ciąg znaków, liczba całkowita, liczba zmiennoprzecinkowa, data itp.?) Ciągle losowo dowiaduję się o nowych, ale chciałbym mieć listę, do której mógłbym łatwo się odnieść.

Elliot
źródło

Odpowiedzi:

270

Oto wszystkie Rails3typy danych (migracja ActiveRecord):

: binarne
: logiczne
: data: data
i godzina
: dziesiętne
: zmiennoprzecinkowe
: liczba całkowita
: klucz_podstawowy
: referencje
: ciąg
: tekst
: czas
: znacznik czasu

Źródło

Nicolas Raoul
źródło
4
oraz: odniesienia do asocjacji polimorficznych. Zobacz: api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/…
Ethan
przewodnik się zmienił. Może link do odpowiedniej dokumentacji powinien go zastąpić.
Harry Moreno,
1
@HarryMoreno: Dzięki za wskazówkę! Zaktualizowałem numer referencyjny, daj mi znać, jeśli znajdziesz lepszy.
Nicolas Raoul
Odniesienia nie ograniczają się do asocjacji polimorficznych. I nie zaliczyłbym tego jako typu danych.
Pascal
67

Ważne jest, aby znać nie tylko typy, ale także ich mapowanie do typów baz danych:

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Na przykład zwróć uwagę, że w MS SQL Server używamy:

  1. stary „datetime” zamiast „datetime2”
  2. dziesiętny z domyślną dokładnością
  3. text i varchar zamiast nvarchar
  4. int (nie można użyć tiny int / small int / big int)
  5. obraz zamiast BLOB
gotqn
źródło
2
Jak znaleźć na tym blogu . Tinyint / smallint / bigint można ustawić za pomocą opcji: limit z: integer. Przetestowałem to na Railsach 3 i MySQL, nadal działają, tak jak napisałem na blogu, są to liczby całkowite ze znakiem.
RacsO,
16

Warto wiedzieć, do czego służą te typy danych:

  • binarny - służy do przechowywania danych, takich jak obrazy, dźwięk lub filmy.
  • boolean - służy do przechowywania wartości true lub false.
  • data - przechowuj tylko datę
  • datetime - przechowuje datę i godzinę w kolumnie.
  • decimal - dotyczy liczb dziesiętnych.
  • float - dotyczy liczb dziesiętnych. ( Jaka jest różnica między wartością dziesiętną a zmiennoprzecinkową? )
  • integer - dotyczy liczb całkowitych.
  • primary_key - unikalny klucz, który może jednoznacznie zidentyfikować każdy wiersz w tabeli
  • string - jest przeznaczony dla małych typów danych, takich jak tytuł. ( Czy powinieneś wybrać ciąg czy tekst? )
  • tekst - dotyczy dłuższych fragmentów danych tekstowych, takich jak akapit informacji.
  • czas - dotyczy tylko czasu
  • timestamp - do przechowywania daty i czasu w kolumnie.

Mam nadzieję, że to komuś pomoże! Oto oficjalna lista: http://guides.rubyonrails.org/migrations.html#supported-types

lflores
źródło