search
LoginSignup
0

More than 1 year has passed since last update.

posted at

Rails:データ型についてちょっとまとめてみた

最初に

カレンダー企画2020の17日目
プログラミングの勉強を始めて3ヵ月程経ったので学んだことのメモをアウトプットとして記事に残します。
これからプログラミングの世界に入る人の手助けになれたら嬉しい限りです。
間違っていたり、言葉が違っていたり、誤解されるような言葉があったら教えてください^^
言葉を長々と読みづらかったら申し訳ありません。少しずつなれてがんばります。

Rails:データ型についてちょっとまとめてみる

こちらで
データベースのテーブルについてまとめたのですが、
そこにカラムというのが登場しました。データ型はそのカラムに制限をかける(条件をつける)みたいな役割があります。

たとえば、
ネットショッピングサイトで金額のところに文字が入るようなことになるとちょっと困りませんか?
通常なら値段の「2980」だけを入れたいのに、制限をかけないでやってしまうと店舗側のミスなどで値段ではなく「大特価」だけが表示されて肝心の値段が分からないなんてことも考えられます。
それに、合計金額を出したいのに文字が入っていれば正常に動作せずお客様にも迷惑なサイトになります。

ちょっと分かりづらいですが本来欲しいデータではないものが入ってしまうということを事前に防ぐことができます。

代表的なデータ型を紹介

データ型 制限される内容
integer 数値(整数)
decimal 数値(精度の高い小数)
float 数値(浮動小数)
string 文字(~255字までの短い文字列)
text 文字(長い文字列)
date 日付
datetime 日時
time 時刻
timestamp タイムスタンプ
binary バイナリ
boolean 真偽

データ型以外にもカラムに設定できるものがあります

AUTOINCREMENT

自動的に番号を連番で割り振る機能。
IDによく使われます。
アカウントや投稿の作成順に1から順に割り振られます。

NOT NULL

空欄を禁止する機能。
保存する時にカラムの中身が空ではダメなものにはこれをつけると良いです!
たとえば、
アカウント作成のpasswordとかなしで登録されては困るのでつけたり、
ブログでタイトルは必ずつけてほしいと考えるのでしたらタイトル相当するカラムにつけるといいです。

DEFAULT

初期値を設定する機能。
レコードが登録された時に自動でカラムの値をいれて登録します。

UNIQUE

重複を禁止する機能です。
同じメールアドレスでの登録は禁止にしたい時やpasswordの重複などで使います。

他にもあると思いますので興味のある方は調べてみてください。

最後に

このようにカラムを作成する際は同時に制限をかけたり、ルールを設けることでアプリケーションを運用し始めた時に誤操作などを防ぎます。
最初のこの設計が結構大事になってきますね。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0