mysql - 维护重复更新设计

标签 mysql ruby-on-rails database database-design

有人可以帮我设计吗?我的用户在我的网站上输入简短的通用更新,如果他们在特定时间限制内输入相同的更新两次以上,则该更新将作为“快速链接”提供,以便将来他们可以快速输入相同的更新。

请问建模的最佳方法是什么? 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/

相关文章:

mysql - 如何在同一个表中正确组织历史数据?

mysql - 为了最小化笛卡尔积,在 FROM 子句中使用子查询是否更好?

javascript - jQuery 缺少 Ajax on Rails 目标

mysql - 使用 Spark 读取 Hive

ruby-on-rails - rails 3 : Different namespace inside nested resource?

ruby-on-rails - Belongs_to 和 has_and_belongs_to_many 到 Rails 中的同一个表

python - 我应该使用 sqlite3 用 python 存储用户名和密码吗?

php - 数据库驱动的网络应用 : How to handle offline use

php - MySql缓存会导致性能问题吗?

mysql - 如何在MySql中用条件更新同一行?