作成者が結合テーブルに主キーを置くのは良くないと言ったスクリーンキャストを見ていましたが、その理由は説明していませんでした。
この例の結合テーブルには、Rails移行で定義された2つの列があり、作成者は各列にインデックスを追加しましたが、主キーは追加しませんでした。
この例で主キーを使用するのはなぜ良くないのですか?
create_table :categories_posts, :id => false do |t|
t.column :category_id, :integer, :null => false
t.column :post_id, :integer, :null => false
end
add_index :categories_posts, :category_id
add_index :categories_posts, :post_id
編集:Cletusに述べたように、結合テーブルの場合でも、主キーとしての自動番号フィールドの潜在的な有用性を理解できます。ただし、上記の例では、作成者は「createtable」ステートメントで構文「:id=>false」を使用して自動番号フィールドを作成することを明示的に回避しています。通常、Railsは、このような移行で作成されたテーブルに自動番号IDフィールドを自動的に追加し、これが主キーになります。しかし、この結合テーブルについては、作成者は特にそれを防ぎました。なぜ彼がこのアプローチに従うことにしたのかわかりませんでした。