1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsデータベース基礎

Posted at

###テーブル
表形式の収納場所でデータベースの中にいくつも作成することができる。
データベースが存在していても、このテーブルがなければデータを保存することはできません。

###レコードとカラム
テーブルは表形式になっていますが、その横一行のことをレコードと言います。また。縦一列のことをカラムと言います。
テーブルのレコードを特定するために、idというカラムが用意されています。

###DOA
DOAとはデータ中心アプローチのことで、プログラムよりも前にデータ設計を先に行う方法のことです。
サービス開発がより効率的になることが期待されます。

###データベース設計
手順としては
1.テーブルの抽出
 途中でテーブルを追加すると関係性を見直さなければいけなくなる。
 予約語は使わないように。

2.テーブルの定義
 各テーブルが持つカラムを決める。途中で追加するとコードを書き直したり、ビューを変更しなくてはいけない場合が出てくるからです。
 予約語は使わないように。

3.テーブル構造を整理
 同じカラム名を同じテーブル内に作ってはいけません。
そのような場合は別でテーブルを作りましょう。
EX)同じテーブルに imageカラム、 image2カラムなど。この場合はimageテーブルを作る。

4.ER図の作成
テーブル同士の関係をわかりやすく表した図。
IE表記法という書き方で書く。

###モデル

モデルの命名規則
モデルクラス名は先頭は大文字の単数形
モデルクラスのファイル名は、先頭小文字の単数形
テーブル名は先頭小文字の複数形
EX)Animal モデルクラス名
animal モデルクラスのファイル名
animals テーブル名

これらモデルファイルとテーブルを作成するコマンドがあります。
それが rails g modelコマンドです。このコマンドの後に作成したいモデルクラスの名前を全て小文字で続けます。
EX)rails g model animal

このコマンドを叩くとテーブルが作成されると言いましたが、テーブルの設計図ができているだけでテーブル自体はまだできていません。テーブルの設計図のことをマイグレーションファイルと言います。

###マイグレーションファイル
changeメソッドを使って作成するカラムを指定できます。

カラムの型
integer 数字 idなど
string 少なめの文字 ユーザー名、パスワード
text 多めの文字 投稿文
boolean 真か偽か 真偽フラグ
datetime 日付と時刻 作成日時、更新日時

####マイグレーションファイルの設定

2020XXXXXXXXXXXXXXXX_create_XXXX.rb
class CreateXxxxxx < ActiveRecord::Migration[5.2]
  def change
    create_table :xxxxs do |t|
      t.string    :name
      t.text      :text
      t.text      :image
      t.timestamps null: false
    end
  end
end

####マイグレーションファイルの実行
rake db:migrate
このコマンドを行うと、ファイルが更新されます。
スキーマファイルには最新のマイグレーションファイルのバージョンが記録される。

schema_migrationsはデータベースの変更履歴のようなもので、どのマイグレーションファイルまでが実行されているかが記録されています。

マイグレーションファイルはschema_migrationsと齟齬が生じる恐れがあるので消してはいけません。
マイグレーションファイルは一度rake db:migrateで実行してしまうと、中身を書き換えて再実行はできません。
rake db:rollbackでデータベースの状態を最新のmigrationファイルを実行する前に戻せます。

###Active Record
Active RecordはRubyのGemの一種です。このGemはRailsにデフォルトでインストールされており、このGemのおかげでモデルとテーブルをつなぎ合わせられています。そのことによりRailsからテーブルのレコードにアクセスできます。
Actice Recordを利用するにはApplicationRecordというクラスを継承する必要があります。
ApplicationRecordを継承することでallメソッド、newメソッド、saveメソッド、findメソッドなどが利用できるようになります。

###SQL
データベースに保存されているデータをデータベースに要求するときに使う言語です。
RailsではActive Recordのおかげで簡単にデータを要求することができます。

1
1
0

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
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?