2012-02-26 35 views
0

任何人都可以給我一些幫助設計嗎?我的用戶在我的網站上輸入簡短的通用更新,如果他們在某個時間限制內輸入了兩次以上的相同更新,則更新將作爲「快速鏈接」提供,因此將來他們可以快速輸入相同的更新。保持重複更新設計

什麼是建模的最佳方式? 2個表格,一個用於更新,另一個用於維護多次輸入的更新,並按頻率排序。如果我有這個系統,每當添加一個新的更新時,我將不得不掃描2個表格以查看它是否已經被輸入;不理想。

回答

1

假設你使用Active Record,你可以使用find_or_create_by方法。 假設你有一個表,如下所示:

消息 ID:整數 體:字符串 USER_ID:整數 created_at:日期時間

如果這個表是在地方,你可以做到以下幾點:

# Assuming the users have_many :messages 
update = user.messages.find_or_create_by_body("string") 

這將找到與身體「字符串」的消息或爲您創建一個新的。

如果您還需要更新的頻率,你可以將其添加到消息表,並呼籲:

update.update_attributes(:frequency => (update.frequency +1))