如何在数据库中维护重复记录?

时间:2011-05-09 13:23:50

标签: mysql ruby-on-rails ruby

我的表包含两列Title和Description。 我想为用户提供一种功能,为现有页面创建重复页面。

与现有的页面数据库存储值类似。

Title1,Description1

当用户点击重复页面按钮时,我想为现有页面创建一个重复的条目,如下所示。

1)点击第一次

Copy_1_Title1, 内容描述

2)点击第二次

Copy_2_Title1, 内容描述

如何创建此类功能?我的数据库应该如何?这是一种正确的方法吗?

2 个答案:

答案 0 :(得分:4)

我认为您应该创建第三列,并将其命名为 copy_number ,然后在创建记录之前,您可以通过标题找到它,如果标题存在,您可以获得价值 copy_number 并增加它。然后你可以使用这个数字来显示你想要的标题:
“copy _#{record.copy_number} _#{record.title}”或类似的内容。

答案 1 :(得分:1)

@ bor1s提出了非常正确的解决方案。

但是为了兴趣,你可以使用这个方法进行复制:)

class Page < AR::Base
  def duplicate
    # new_page = self.clone
    new_page = Page.new self.attributes.except(:id, :created_at, :updated_at)
    copy = (self.title.match(/Copy_(\d)+.*/).try([1]) || 0) + 1
    new_page.title = "Copy_#{copy}_#{self.title}"
    new_page.save
  end
end