create_table :categories_posts, :id => false do |t|
t.column :category_id, :integer, :null => false
t.column :post_id, :integer, :null => false
end
対応するカテゴリテーブルと投稿テーブルを参照する列を持つ結合テーブル(上記のとおり)があります。カテゴリ_posts結合テーブルの複合キーcategory_id、post_idに一意性制約を適用したかったのです。しかし、Railsはこれをサポートしていません(私は信じています)。
category_idとpost_idの同じ組み合わせを持つデータ内の重複行の可能性を回避するために、Railsに複合キーがない場合の最善の回避策は何ですか?
ここでの私の仮定は次のとおりです。
- デフォルトの自動番号列(id:integer)は、この状況でデータを保護するために何もしません。
- ActiveScaffoldは解決策を提供するかもしれませんが、特によりエレガントな答えがある場合は、この単一の機能のためだけにそれをプロジェクトに含めるのがやり過ぎかどうかはわかりません。