1

Rails での処理方法がわからない状況があります。

イベントhas_many :photosと写真belongs_to :event

十分に簡単

ただし、Event は 1 つの「キー」写真も参照する必要があります。

追加について考えました:

イベントhas_one :key_photo, :foreign_key => "photo_id"

しかし、これはhas_many上記のように機能しますか? もしそうなら、すでに言っているPhotoモデルの逆をどのように処理するのPhoto belongs_to :eventですか?

1 行 (「キー」写真) のみに当てはまるブール列を Photo に追加できますが、それは無駄のように思えます... 1 ビット列のみの場合。

4

2 に答える 2

0

価値があるのは、1ビットの列を追加/使用することです。コードをより表現力豊かにし、コードの意図をよりよく示します。「ああ、それは has_one AND has_many」のような癖に頼ると、将来、あなたのような他の開発者を混乱させるでしょう。

コンパイラやデータベースではなく、最初に他の開発者のために書いています。事後に戻ってきて、プロファイリングを使用して、より美しく/エレガントにします。この 1 ビットがレコード ストレージの問題を引き起こす可能性は、せいぜい最小限です。

于 2011-08-25T18:35:01.607 に答える
0

最もクリーンな実装は、:key_photo のイベントで追加の FK を使用することだと思います。

# events.rb
belongs_to :key_photo, :class_name => 'Photo'
于 2011-08-25T18:41:24.207 に答える