2016-07-27 4 views
0

ユーザーは変更を送信して投票することができるプロジェクトに取り組んでいます。しかし、私は元のバージョンを保持して、ユーザーがそれを見て、元のものと投票したものとの違いを見ることができるようにしたい。どのようなImがこれを行うための最善の方法は何と思いますか?元のコピーを保持するための重複レコード

元々、レシピを2回作成してもう一方のIDを参照することを考えていましたが、これを行うより効率的な方法があるのだろうかと思っていました。

私はそれを行うには多くの方法があると思います

答えて

1

: -

  1. 単一のテーブルを使用するには、すべての新しいレシピレコードのために、あなたはバージョン列を追加し、上作成し、あなただけの必要time.soそれごとに更新することができます。現在のレシピと現在のレシピ-1レコードを比較します。
  2. モデルを使用して新しいレシピが作成されるたびに、最初のテーブルには作成されたすべてのレシピが保存され、他のテーブルにはそのユーザーの最後のレシピID(user.recipes.last)が保存されます。例:

    ユーザーにhas_many:recipe_copies、:依存=>:破壊 ユーザーhas_manyの:レシピを通して:recipe_copies

はそうrecipesテーブル内のすべての新しいレコードのために、あなたは0で新しい行を追加することができますテーブルをuser.recipes.last.idNew recipe idを使用してコピーテーブルに格納します。など

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

は、それが

を役に立てば幸い
関連する問題