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のインスタンスが多数あると、ポストごとのコメント数がここにキャッシュされます。