初めに
Schemaについてまとめてみました。
※自分用でまとめてますので、分かり辛かったらすいません。
また理解不足・誤りがあったらコメント頂けますと幸いです。m(__)m<ヨロシクオネガイシマス
前提条件
すでにBookモデルが作成されていること
※じゃあモデルを作成していないとだめなのか?と思った方・・・実はそうでもないんです!!
schemaファイルはデフォルトであるファイルになるので、モデルを作成していなくてもファイルは存在します
ただ何も書かれていない状態になります(;^ω^)
主なやること
特になし
ご自身で確認したい人は・・・
①モデルの作成(rails g model 任意のモデル名)&migrateファイルの編集(任意のカラムを一つか二つ作ってみて下さい)→忘れずに「rails db:migrate」
②Schemaファイルを開く(任意のアプリ名/db/schema.rb)
Schemaとは
「スキーマファイル → データベース上に作ったテーブル・カラムを簡易的に表示したファイル」とのことでした( ..)φメモメモ
参考資料:Active Record マイグレーション - Rails ガイド
テーブル&カラムとは何ぞや?と思った人
①テーブル→あるデータの集合体②カラム→テーブルの縦1列(更に?になった人は後で分かりやすい画像がありますので、そちらを参照してください)
schemaファイルを見てみよう
では早速、確認作業に入っていきます。
ここでは本の情報(bookモデル)
を見ていきます。
create_table "books", force: :cascade do |t|
t.integer "user_id"
t.string "title"
t.text "body"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
・create_table "テーブル名" → ""内にテーブル名が表示されます
・integer → カラムのデータ型(integerは整数が入ります)
・t.integer"カラム名" → ""内にカラム名が表示されます
これじゃあ分かり辛い方もいると思うので、次に分かりやすく表を作ってみました(/・ω・)/
表にしてみると・・・
こんな感じです。
カラムやテーブルの説明文を読んでもイマイチ分からなかった方は、これだとイメージ出来るんじゃないですか?
因みに僕もそうでした(´▽`)
ポイント①IDは主キー:何番目の本なのかを識別する番号(migrateファイルで指定しなくても作成されます)
ポイント②user_idには整数が入っていること(因みにtitleとbodyは文字が入るようにしています)
まとめ
schemaファイルは、DBに保存しているテーブルとカラムをまとめたファイルである
余談ですが・・・
schemaってどんなときに使うの??と思った方・DBに何のカラムやテーブルが保存しているのか確認したい時(特にアソシエーションを作成するとき)
・新機能を入れる時(例えば検索機能やフォローフォロワー機能など外部参照キーが必要になる処理を作る時)
※あくまで私個人の意見に過ぎないので、他に使い時がある場合はぜひコメントで教えてください!!