2024-05-12 ActiveRecord のスキーマルール
Active Record の基礎 - Railsガイド より引用。
主キーおよび外部キーは皆さんおなじみのルール。
- 外部キー(foreign key): このカラムは
テーブル名の単数形_id
にする必要があります(例:item_id
、order_id
)。これらのカラムは、Active Recordがモデル間の関連付けを作成するときに参照されます。- 主キー(primary key): デフォルトでは
id
という名前のinteger
カラムがテーブルの主キーに使われます(PostgreSQLやMySQLではbigint
、SQLiteではinteger
)。Active Recordマイグレーションでテーブルを作成すると、これらのカラムが自動的に作成されます。
また下記のタイムスタンプカラムもおなじみ。
created_at
: レコード作成時に現在の日付時刻が自動的に設定されますupdated_at
: レコード作成時や更新時に現在の日付時刻が自動的に設定されます
その他の使うべきときでしか使わないカラムのルールは下記の通り。
lock_version
: モデルにoptimistic lockingを追加しますtype
: モデルでSingle Table Inheritanceを使う場合に指定します関連付け名_type
: ポリモーフィック関連付けの種類を保存しますテーブル名_count
: 関連付けにおいて、所属しているオブジェクトの数をキャッシュするのに使われます。たとえば、Article
クラスにcomments_count
というカラムがあり、そこにComment
のインスタンスが多数あると、ポストごとのコメント数がここにキャッシュされます。