2012-02-26 12 views
0

誰も私にデザインをお願いしますか?私のユーザーは自分のサイトに短い一般更新を入力します。一定の制限時間内に同じアップデートを2回以上入力すると、アップデートは「クイックリンク」として利用できるようになり、将来同じアップデートを迅速に入力することができます。重複した更新の設計を維持する

これをモデル化する最良の方法は何ですか? 2つのテーブル、1つは更新用、もう1つは複数回入力された更新を保持し、頻度別にソートします。私はこのシステムを持っている場合、新しい更新が追加されるたびに、2つのテーブルをスキャンして、前にすでに入力されているかどうかを調べる必要があります。理想的ではない。

答えて

1

アクティブレコードを使用していると仮定すると、find_or_create_byメソッドを使用できます。

メッセージ ID: 体をint型:文字列 のuser_id:int型 のcreated_at:日時

この表が整備されている場合は、次の操作を行うことができます。

を のは、次のようにテーブルがあるとしましょう
# Assuming the users have_many :messages 
update = user.messages.find_or_create_by_body("string") 

これは本文 "string"のメッセージを見つけるか、新しいメッセージを作成します。

あなたはまた、周波数を更新する必要がある場合は、メッセージテーブルにこれを追加して呼び出すことができます。

update.update_attributes(:frequency => (update.frequency +1)) 
関連する問題