2016-07-26 8 views
2

Rails 4モデルでは、従業員と部門の関係をモデル化したいと考えています。ある従業員が属しており、ある部門がdepartment_many従業員である。外部キーにすることなくemployeeテーブルにdepartment_id参照を作成できますか?Rails:外部キーを使用しない列参照の作成

これは、私が使用しているデータベースであるMySQLのレコードロック動作に影響を与え、複数のスレッドから同時に更新を実行するとランダムエラーが発生する可能性があるからですRailsアプリケーション。

答えて

1

はいできます。 Rails 4.2を使用していて、マイグレーション内でreferencesまたはadd_referenceを使用している場合は、:foreign_keyオプションをfalseに設定してください。

@ user1063998で説明されているアプローチを採用し、department_idという整数列をemployeesテーブルに追加することもできますが、その場合はこの列のインデックスも追加することをお勧めします。

1

デフォルトでは、Railsはデータベースレベルで外部キー制約を追加しません。

移行を使用すると、department_idという従業員表に単純に整数列を追加できます。外部キー制約の動作を模倣する必要がある場合は、モデルで検証を使用できます。

関連する問題