2016-07-27 62 views
0

我正在開發一個項目,該項目允許用戶提交併對變更進行投票。但是我想保留原始版本,以便用戶可以查看它並查看原始內容和已投票內容之間的差異。我在想什麼是做這件事的最好方法是什麼?重複記錄以保留原始副本

我原本以爲創建食譜兩次,並參考另一個作爲原始的ID,但想知道是否有一個更有效的方法來做到這一點。

回答

1

我覺得有一個很多方法可以做到這一點: -

  1. 使用單表,對於每一個新的配方記錄,您可以添加一個版本列和創建,更新它的每time.so你只需要比較當前配方和當前配方-1記錄。
  2. 使用兩個表格,第一個表格將存儲每個創建的食譜,其他表格將在使用has many through模型創建每個新配方之後,存儲該用戶的最後配方ID(user.recipes.last)。例如: -

    用戶的has_many:recipe_copies,:依賴=>:摧毀 用戶的has_many:通過配方:recipe_copies

所以對於recipes表中的每個新的記錄,你可以地址新行recipes_copy表使用user.recipes.last.idNew recipe id並將其存儲在副本表中。

recipe_copies:- previous_recipe,recipe_id,user_id 
     recipes:- name,user_id,description,active...etc 

希望它可以幫助