【问题标题】:Maintaining duplicate updates design维护重复更新设计
【发布时间】:2012-02-26 10:32:16
【问题描述】:

谁能给我一些设计方面的帮助吗?我的用户在我的网站上输入简短的通用更新,如果他们在特定时间限制内输入相同的更新超过两次,则更新将作为“快速链接”提供,因此他们将来可以快速输入相同的更新。

请问这个建模的最佳方法是什么? 2 个表,一个用于更新,另一个用于维护多次输入的更新,并按频率排序。如果我有这个系统,每当添加新的更新时,我将不得不扫描 2 个表以查看之前是否已经输入过;不理想。

【问题讨论】:

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


    【解决方案1】:

    假设您正在使用 Active Record,您可以使用 find_or_create_by 方法。 假设您有一个如下表:

    消息 编号:整数 正文:字符串 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))
    

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 2015-06-19
      • 1970-01-01
      • 2015-09-12
      • 2019-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多