ID、キー、コード...

メモなので粗め。

RDBMSの主キー

  1. 適当に(レコードと無関係に)付与する
  2. 体系に沿った(レコードと関係のある)ものを付ける

1=id(識別子)、2=code(符号)って勝手に呼んでた

代理キーとナチュラルキー | TechRacho

なるほど、冒頭の1(id)は代理キー、2(code)はナチュラルキー。

  • Railsの設計はデフォルトで代理キーになってる
  • BI系とかだとナチュラルキーの場合も多い気がする
  • でもどっちでもない外部参照(?)とかあったりする...

とりあえず、どっちでもない外部参照はbelongs_toのスコープで強引になんとか。

Out of Rails' way!

おまけ

  • ナチュラルキーかつ複合キーの時はcomposite_primary_keys gemの出番
  • 実は↑のgemはRailsの代理キー残したままでも使える