有人可以帮我设计吗?我的用户在我的网站上输入简短的通用更新,如果他们在特定时间限制内输入相同的更新两次以上,则该更新将作为“快速链接”提供,以便将来他们可以快速输入相同的更新。
请问建模的最佳方法是什么? 2 个表,一个用于更新,另一个用于维护已多次输入的更新,并按频率排序。如果我有这个系统,每当添加新的更新时,我都必须扫描 2 个表以查看之前是否已经输入过;不理想。
最佳答案
假设您使用的是 Active Record,您可以使用 find_or_create_by 方法。 假设您有一个如下表:
留言 id:整数 主体:字符串 用户 ID:int 创建时间:日期时间
如果此表已就位,您可以执行以下操作:
# Assuming the users have_many :messages
update = user.messages.find_or_create_by_body("string")
这将找到正文为“字符串”的消息或为您创建一条新消息。
如果您还需要更新频率,您可以将其添加到消息表中并调用:
update.update_attributes(:frequency => (update.frequency +1))
关于mysql - 维护重复更新设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9452385/